我想遍历数组中包含的对象,并更改每个对象的属性。如果我这样做:
for (var j = 0; j < myArray.length; j++){
console.log(myArray[j]);
}
控制台应该会调出数组中的每个对象,对吗?但实际上它只显示第一个对象。如果我通过控制台将数组记录在循环之外,所有的对象都会出现,所以里面肯定有更多的对象。
无论如何,这是下一个问题。如何使用循环访问,例如数组中的Object1.x?
for (var j = 0; j < myArray.length; j++){
console.log(myArray[j.x]);
}
这将返回“undefined”。同样,循环外的控制台日志告诉我,所有对象都有"x“的值。如何在循环中访问这些属性?
有人建议我在其他地方为每个属性使用单独的数组,但我想先确保我已经用尽了这条途径。
谢谢!
发布于 2013-05-19 00:52:50
使用forEach它是一个内置的数组函数。Array.forEach()
yourArray.forEach(function (arrayItem) {
var x = arrayItem.prop1 + 2;
console.log(x);
});
发布于 2015-06-29 10:11:28
您可以使用for..of loop循环遍历对象数组。
for (let item of items) {
console.log(item); // Will display contents of the object inside the array
}
关于for..of
循环最好的事情之一是,它们可以遍历的不仅仅是数组。您可以迭代任何类型的可迭代对象,包括映射和对象。如果您需要支持较旧的浏览器,请确保使用转译器或TypeScript之类的东西。
如果您想在map上迭代,其语法与上面的基本相同,只是它同时处理键和值。
for (const [key, value] of items) {
console.log(value);
}
我在Javascript中几乎每一种迭代都使用for..of
循环。此外,最酷的事情之一是它们也可以使用async/await。
发布于 2013-05-19 00:53:02
for (var j = 0; j < myArray.length; j++){
console.log(myArray[j].x);
}
https://stackoverflow.com/questions/16626735
复制相似问题