我有一个JavaScript对象集团JavaScript对象的ID
我试图按ID这些对象,并产生地图名称的列表,其中的关键是id的,并且该值是名称。例如:
{1 : [John, Jane, Mike], 3: [Bob, Will]}
与下面的代码,我得到:
{1: [John, Jane, Mike, Bob, Will], 3: [John, Jane, Mike, Bob, Will]}
我怎样才能实现我想要的输出?任何帮助,将不胜感激。
var myObj = [{
id: 1,
name: "John",
major: "accounting"
},
{
id: 1,
name: "Jane",
major: "accounting"
}, {
id: 1,
name: "Mike",
major: "accounting"
}, {
id: 3,
name: "Bob",
major: "history"
}, {
id: 3,
name: "Will",
major: "history"
}]
for (i in myObj) {
var obj = myObj[i];
var id = obj.id;
var name = obj.name;
var newMap = {};
var namesArray = [];
if (!(id in newMap)) {
namesArray.push(name);
newMap[id] = namesArray;
} else {
for (key in newMap) {
if (key == id) {
namesArray.push(name);
newMap[key] = namesArray;
}
}
}
console.log(newMap);
}
我试图创建一个片段给你。该数组并不是一个可行的解决方案,它不需要for(for myObj)。请修复代码和对象,以反映您的意见 – mplungjan
谢谢大家的解决方案 –