这是我的目标:
var tools = {
hammer: {
name: "hammer",
number: "23",
owner;
"John"
},
screwdriver: {
name: "screwdriver",
number: "72",
owner: "Peter",
},
crowbar: {
name: "crowbar",
number: "6",
owner: "Jack"
}
};
这个函数很好地为我提供了控制台日志中的所有数据:
我的问题是如何只从对象中获取所有者的值?
Object.keys(tools).forEach(function(key) {
console.log(key, items[key]);
});
答案 0 :(得分:1)
如果您只想要所有者名称,请执行此操作,
Object.keys(tools).forEach(function(key) {
console.log(key, tools[key].owner);
});
循环中的tools[key]
包含整个对象,当您需要单个属性时,只需使用dot notation引用它
var tools = {
hammer: {
name: "hammer",
number: "23",
owner: "John"
},
screwdriver: {
name: "screwdriver",
number: "72",
owner: "Peter",
},
crowbar: {
name: "crowbar",
number: "6",
owner: "Jack"
}
};
Object.keys(tools).forEach(function(key) {
console.log(key, tools[key].owner);
});

答案 1 :(得分:0)
在forEach
回调中,使用tools
代替items
。您的问题中的代码没有分配给items
的任何内容,因此无法按预期工作。
通过owner
tools[key]
中的tools[key].owner
媒体资源
如果您只想记录所有者名称,则可以从key,
中删除console.log
。
var tools = {
hammer: {
name: "hammer",
number: "23",
owner: "John"
},
screwdriver: {
name: "screwdriver",
number: "72",
owner: "Peter",
},
crowbar: {
name: "crowbar",
number: "6",
owner: "Jack"
}
};
Object.keys(tools).forEach(function(key) {
console.log(key, tools[key].owner); // remove `key,` if you literally want just the owner name logged
});

答案 2 :(得分:0)
您可以使用Array#map
收集数组中的名称。
var tools = { hammer: { name: "hammer", number: "23", owner: "John" }, screwdriver: { name: "screwdriver", number: "72", owner: "Peter" }, crowbar: { name: "crowbar", number: "6", owner: "Jack" } },
owners = Object.keys(tools).map(function(key) {
return tools[key].owner;
});
console.log(owners);