我有一个包含多个类别对象的数组,每个类别对象都有一个items
包含项目对象数组的属性。我想将每个类别中的每个项目映射到一个 object[] ,其中的对象具有属性值和标签。由于某种原因,我无法执行连接。
var categories = [{
name: "category1",
items: [{
itemId: 1,
name: "Item1"
}, {
itemId: 2,
name: "Item2"
}]
}, {
name: "category2",
items: [{
itemId: 3,
name: "Item3"
}, {
itemId: 4,
name: "Item4"
}]
}];
var items = [];
for(var i = 0; i < categories.length; i++){
items.concat($.map(categories[i].items,function(elem){
return {value:elem.itemId, label:elem.name};
}));
}
console.log(items); //prints []
预期结果
[{
label: "Item1",
value: "1"
},
{
label: "Item2",
value: "2"
},{
label: "Item3",
value: "3"
},{
label: "Item4",
value: "4"
}
我觉得好像我错过了一些非常基本的东西。我记录了$.map
函数的结果,它似乎正在返回一个[]
. 谁能弄清楚这个问题?
JSFiddle:http: //jsfiddle.net/vymJv/