J'ai un tableau avec plusieurs objets de catégorie, chacun ayant une propriété items
contenant un tableau d'objets éléments. Je veux mapper chaque élément de chaque catégorie à un objet [] avec des objets qui ont la valeur et l'étiquette des propriétés. Pour une raison quelconque, je ne peux pas effectuer la concaténation.Concaténer le tableau imbriqué après le mappage
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 []
Résultat attendu
[{
label: "Item1",
value: "1"
},
{
label: "Item2",
value: "2"
},{
label: "Item3",
value: "3"
},{
label: "Item4",
value: "4"
}
Je me sens comme si je manque quelque chose très basique. J'ai enregistré le résultat de la fonction $.map
et il semble retourner un []
. Quelqu'un peut-il comprendre le problème?
jsFiddle:http://jsfiddle.net/vymJv/
S'il vous plaît ne pas tenir compte. Je devais attribuer des éléments le résultat de la concat() –