[英]Arrays and objects and javascript map
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我正在用 ReactJs 写这个
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试试这个或检查js计算值
You could reduce the array and get a single object with Artikelnummer
as key for the item informations.您可以减少数组并使用Artikelnummer
作为项目信息的键来获取单个对象。
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]
}
}), {});
You can use ES6 spread & Object.assign like below你可以像下面一样使用ES6 spread & Object.assign
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);
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
})
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]
}
};
}, {});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.