我有 2 個這樣的陣列
const dates = ["2019", "2020", "2021"];
const data = [[100, 200, 300, 20], [400, 500, 600, 30], [700, 800, 900, 40]];
我想將這兩個陣列合并成一個像這樣的物件陣列詳細資訊:結果陣列的第一個物件將具有二維陣列中每個陣列的第一個元素的值其余的結果陣列也是如此
const result = [
{
2019: 100,
2020: 400,
2021: 700
},
{
2019: 200,
2020: 500,
2021: 800
},
{
2019: 300,
2020: 600,
2021: 900
},
{
2019: 20,
2020: 30,
2021: 40
}
]
uj5u.com熱心網友回復:
我建議您首先使用transpose您的data行,然后您可以table使用Array.prototype.map和Object.fromEntries-
const transpose = t =>
t.some(a => Boolean(a.length))
? [t.map(a => a[0]), ...transpose(t.map(a => a.slice(1)))]
: []
const table = (columns, rows) =>
transpose(rows).map(r =>
Object.fromEntries(columns.map((c,i) =>
[c, r[i]]
))
)
const dates = ["2019", "2020", "2021"]
const data = [[100, 200, 300, 20], [400, 500, 600, 30], [700, 800, 900, 40]]
console.log(table(dates, data))
uj5u.com熱心網友回復:
也許你可以試試這個:
const dates = ["2019", "2020", "2021"];
const data = [[100, 200, 300, 20], [400, 500, 600, 30], [700, 800, 900, 40]];
const res=data[0].reduce((a,_,j,da)=>{
a.push(Object.fromEntries(dates.map((d,i)=>[d,data[i][j]])))
return a;
},[]);
console.log(res)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411930.html
標籤:
上一篇:如何將嵌套物件鍵收集到陣列中?
