如何通过对象循环返回对象而不是字符串?

时间:2015-02-05 02:16:33

标签: javascript

我有一个物体,卡片,由其他物体组成。

当我循环浏览卡片时,我希望其他对象返回。相反,只返回一个字符串。我已经在下面的代码中包含了内联返回的内容。

console.log(typeof cards); //returns object
console.log(cards); //returns the 3 objects: [Object, Object, Object]
console.log(cards.length); //returns 3

for (var card in cards){
    console.log(typeof card); //returns 0,1,2 as a string, but it should return another object
};

1 个答案:

答案 0 :(得分:1)

for...in循环迭代对象的属性,而不是值。

例如:

var cards = ['a', 'b', 'c'];
for(var prop in cards) {
    console.log(prop);        //  0,   1,   2
    console.log(cards[prop]); // 'a', 'b', 'c'
}

此外,请注意for...in循环是bad way of iterating arrays

ECMAScript 6引入了for...of循环,它迭代值:

var cards = ['a', 'b', 'c'];
for(var val of cards) {
    console.log(val);         //  'a', 'b', 'c'
}