Reputation: 187
I have a problem. I have this array that I want to convert to an object with dynamic data.
this is the function
const prodSheet2 = prodSheet.map(da =>
({ Artikelnummer: da[0],
Benämning: da[1],
AnnanBemäning: da[2],
Kortnman: da[3],
Artikelgrupp: da[4]}))
and this expels data as:
0 : {Artikelnummer: 100010, Benämning: aaa, AnnaBenämning: aaa, Kortnamn: a, Artikelgrupp:101}
1 : {Artikelnummer: 100011, Benämning: aaa, AnnaBenämning: aaa, Kortnamn: b, Artikelgrupp:101}
but I wanted it to be like:
100010 : {Artikelnummer: 100010, Benämning: aaa, AnnaBenämning: aaa, Kortnamn: a, Artikelgrupp:101}
100011 : {Artikelnummer: 100011, Benämning: aaa, AnnaBenämning: aaa, Kortnamn: b, Artikelgrupp:101}
I have been trying different ways but cannot figure out. I am writing this in ReactJs
Upvotes: 0
Views: 71
Reputation: 386776
You could reduce the array and get a single object with Artikelnummer
as key for the item informations.
const prodSheet2 = prodSheet.reduce((o, da) =>({
...o,
[da[0]]: {
Artikelnummer: da[0],
'Benämning': da[1],
'AnnanBemäning': da[2],
Kortnman: da[3],
Artikelgrupp: da[4]
}
}), {});
Upvotes: 1
Reputation: 1627
This will work.
const prodSheet2 = prodSheet.reduce((acc, next) => {
return {
...acc,
[next[0]]: {
Artikelnummer: next[0],
Benämning: next[1],
AnnanBemäning: next[2],
Kortnman: next[3],
Artikelgrupp: next[4]
}
};
}, {});
Upvotes: 0
Reputation: 14228
You can use ES6 spread & Object.assign like below
var prodSheet =
[
[100010, "aaa", "aaa", "a", 101],
[100011, "aaa", "aaa", "b", 101]
];
var result2 = Object.assign({}, ...prodSheet.map(da => ({[da[0]]: { Artikelnummer: da[0],
Benämning: da[1],
AnnanBemäning: da[2],
Kortnman: da[3],
Artikelgrupp: da[4]}})));
console.log(result2);
Upvotes: 1
Reputation: 272
const prodSheet2 = prodSheet.map(da => {
var key = da[0]
var obj = {}
obj[key] = {
da : {
Artikelnummer: da[0],
Benämning: da[1],
AnnanBemäning: da[2],
Kortnman: da[3],
Artikelgrupp: da[4]
}
}
return obj
})
Upvotes: 0
Reputation: 635
const prodSheet2 = prodSheet.map(da =>
([da[0]]:{ Artikelnummer: da[0],
Benämning: da[1],
AnnanBemäning: da[2],
Kortnman: da[3],
Artikelgrupp: da[4]}))
try this or check the js computed value
Upvotes: 1