我在for循环中出了什么问题? /如何引用对象名称? (codecademy,javascript)

时间:2014-01-05 16:44:53

标签: javascript object reference for-in-loop

var friends = {
    bill: {
        firstName: "Bill",
        lastName: "Gates",
        number: "(206) 555-5555",
        address: ['One Microsoft Way','Redmond','WA','98052'],
    },

    steve: {
        firstName: "Steve",
        lastName: "Jobs",
        number: "(408) 555-5555",
        address: ['1 Infinite Loop','Cupertino','CA','95014']
    }
};



var list = function(friends) {
    for (var i in friends) {
        console.log(friends[i]);
    }
};

我被要求将两个对象的名称记录到控制台,但我对如何执行此操作感到困惑。 Codecademy并没有让我明白这一点。你能?期望的输出:

bill
steve

注意:我不想要朋友[i] .firstname,我想要朋友的名字[i]。

3 个答案:

答案 0 :(得分:1)

在这种情况下,i本身就是属性名称

for (var i in friends) {
  console.log(i);
}

答案 1 :(得分:0)

应该是:

for (var i in friends) {
    console.log(i);
}

这是因为for ... in遍历对象的

另外,我建议使用其他变量名称,例如friend而不是i,因为i通常表示数字或索引。

答案 2 :(得分:0)

你必须像这样调用函数list

list(friends);

list中,你只需打印这样的名字

var list = function(friends) {
    for (var name in friends) {
        console.log(name);
    }
};

在ES5支持的实现中,您只需使用

即可
Object.keys(friends);

如果您使用underscore.js,则可以使用_.keys,就像这样

_.keys(friends);