Javascript循环遍历对象集合

Javascript loop through collection of objects

本文关键字:集合 对象 遍历 循环 Javascript      更新时间:2023-09-26
var squares = [1, 2, 4,  8];
var cubes = [1, 4, 9, 16];
var north,east,south,west;
north = getClass(squares[0], cubes[0]);
east  = getClass(squares[1], cubes[1]);
south = getClass(squares[2], cubes[2]);
west  = getClass(squares[3], cubes[3]);
$('.' + north).doStuff()
$('.' + east).doStuff()
$('.' + south).doStuff()
$('.' + west).doStuff()

我正在用javascript编写一些代码,感觉我应该能够重构这一部分,但我不知道如何做到

我想我想做的是把北、东、南、西变成某种集合,这样我就可以迭代了?

你建议我如何使用javascript来实现这一点?

您可以这样做:

var squares = [1, 2, 4,  8];
var cubes = [1, 4, 9, 16];
var selectors = [];
for(var c = 0, c < squares.length, c++){
    selectors.push(getClass(squares[c], cubes[c]));
}
$('.' + selectors.join(', .')).doStuff()

或者,您可以使用.map:

var squares = [1, 2, 4,  8];
var cubes = [1, 4, 9, 16];
var selectors = $.map(squares, function(_, i){
    return getClass(squares[i], cubes[i]);
})
$('.' + selectors.join(', .')).doStuff()

试试这个方法:

var squares = [1, 2, 4,  8];
var cubes = [1, 4, 9, 16];
for(var i=0; i< squares.length; i++)
{
     $('.' + getClass(squares[i], cubes[i])).doStuff();
}

类似这样的东西:

var squares = [1, 2, 4,  8];
var cubes = [1, 4, 9, 16];
var direction=[]
for (i=0;i<cubes.length;i++){
    a.push(getClass(squares[i], cubes[i]));
}
$(a).each(function (index) {
    $('.' + this).doStuff();
});