由于某种原因,它会同时返回键和值两次。我究竟做错了什么?
function loopAnArrayOfObjects(arrayOfObjects) {
for (var i = 0; i < arrayOfObjects.length; i++) {
for (var key in arrayOfObjects) {
console.log(arrayOfObjects[key]);
}
}
}
loopAnArrayOfObjects([{a: 1, b: 2}, {z: 5, y: 6}, {q: 14} ]);
// expected console output:
// 1
// 2
// 5
// 6
// 14
loopAnArrayOfObjects([{queue: false, stack: true}, {fish: 'swims'}, {shirt: 's', pop: 'p', eye: 'e'} ]);
// expected console output:
// false
// true
// swims
// s
// p
// e
在每次迭代中,当前元素/对象为arrayOfObjects[i]
,这是您应使用的。
function loopAnArrayOfObjects(arrayOfObjects) {
for (var i = 0; i < arrayOfObjects.length; i++) {
for (var key in arrayOfObjects[i]) {
console.log(arrayOfObjects[i][key]);
}
}
}
loopAnArrayOfObjects([{queue: false, stack: true}, {fish: 'swims'}, {shirt: 's', pop: 'p', eye: 'e'} ]);
或者,您可以使用for ... of
循环仅遍历没有索引的元素。
function loopAnArrayOfObjects(arrayOfObjects) {
for(const obj of arrayOfObjects){
for (const key in obj) {
console.log(obj[key]);
}
}
}
loopAnArrayOfObjects([{queue: false, stack: true}, {fish: 'swims'}, {shirt: 's', pop: 'p', eye: 'e'} ]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句