如何在 javascript 中调用对象键 (codecademy)

How to call for object keys in javascript (codecademy)

我正在 Javascript 学习 Codecademy 的在线课程,但我被作业困住了。

我正在尝试列出 "friends list" 中的 firstName 键。 我必须在函数中使用 "for in" 语句来执行此操作。 firstName 键在对象 "Steve" 中,它在对象 "Friends" 中。 这是我目前拥有的代码:

var friends = {
    steve: {
        firstName: 'Steve',
        lastName: 'Jobs',
        number: '1',
        address: ['Fregataan','65','8546','RG','Amsterdam','The Netherlands'],
    },

    bill: {
        firstName: 'Bill',
        lastName: 'Gates',
        number: '2',
        address: ['Fregataan','665','8546','RG','Amsterdam','The Netherlands'],
    },

};

function list(friends){
    for (var firstName in friends){
        console.log(friends.keys(firstName))
    }
}

 list(friends.keys);

这是我从课程中得到的作业: 1. 创建一个接受单个参数的函数列表。 2. 在函数体中,写一个for/in循环。 3. 在循环中,使用console.log打印出密钥。 (例如,如果您只有 bill 和 steve 作为条目,列表应该只打印出 "bill" 和 "steve"。)

对象 "friends" 已在之前的作业中写入。该函数必须写在这个作业中。有人可以找到我的错误并告诉我我做错了什么吗?

您好, 卢克

你应该多玩玩它。 无需使用 'keys'.

var friends = {
    steve: {
        firstName: 'Steve',
        lastName: 'Jobs',
        number: '1',
        address: ['Fregataan','65','8546','RG','Amsterdam','The Netherlands'],
    },

    bill: {
        firstName: 'Bill',
        lastName: 'Gates',
        number: '2',
        address: ['Fregataan','665','8546','RG','Amsterdam','The Netherlands'],
    },

};

function list(friends){
    console.log(friends);
    for (var friend in friends){
        console.log(friend);

        var f = friends[friend];
        console.log(f.firstName);
    }
}

list(friends);

我认为这可能是一个棘手的问题。您正在尝试打印 firstName 键(如果正确完成)将打印出 "Steve" 和 "Bill",但正如您所描述的那样,分配是打印出键(即 "steve" 和 "bill")。因此,如果是这种情况,您应该只打印出密钥:

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

希望对您有所帮助。