从现在开始,我使用这个循环来迭代数组的元素,即使在数组中放置具有不同属性的对象,它也可以工作得很好。
var cubes[];
for (i in cubes){
cubes[i].dimension
cubes[i].position_x
ecc..
}现在,让我们假设cubes[]是这样声明的
var cubes[][];我能用JavaScript做这个吗?我如何才能自动地迭代
cubes[0][0]
cubes[0][1]
cubes[0][2]
cubes[1][0]
cubes[1][1]
cubes[1][2]
cubes[2][0]
ecc...作为一种解决办法,我可以声明:
var cubes[];
var cubes1[];并分别处理这两个数组。这是更好的解决办法吗?
发布于 2012-04-05 02:29:25
你可以这样做:
var cubes = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
for(var i = 0; i < cubes.length; i++) {
var cube = cubes[i];
for(var j = 0; j < cube.length; j++) {
display("cube[" + i + "][" + j + "] = " + cube[j]);
}
}工作jsFiddle:
上述各项的产出:
cube[0][0] = 1
cube[0][1] = 2
cube[0][2] = 3
cube[1][0] = 4
cube[1][1] = 5
cube[1][2] = 6
cube[2][0] = 7
cube[2][1] = 8
cube[2][2] = 9发布于 2012-04-05 02:25:40
var cubes = [["string", "string"], ["string", "string"]];
for(var i = 0; i < cubes.length; i++) {
for(var j = 0; j < cubes[i].length; j++) {
console.log(cubes[i][j]);
}
}发布于 2018-10-28 19:46:49
有点晚了,但是这个解决方案很好,很好。
const arr = [[1,2,3],[4,5,6],[7,8,9,10]]
for (let i of arr) {
for (let j of i) {
console.log(j) //Should log numbers from 1 to 10
}
}或者在你的情况下:
const arr = [[1,2,3],[4,5,6],[7,8,9]]
for (let [d1, d2, d3] of arr) {
console.log(`${d1}, ${d2}, ${d3}`) //Should return numbers from 1 to 9
}注意: for ... of循环在ES6中是标准化的,所以只有在您有ES5 Javascript编译器(如Babel)时才使用它。
另一个注意事项:有选择,但它们有一些微妙的区别和行为,如forEach()、for...in、for...of和传统for()。这取决于你的情况来决定使用哪一个。(ES6也有.map(),.filter(),.find(),.reduce())
https://stackoverflow.com/questions/10021847
复制相似问题