gpt4 book ai didi

javascript - 使用 ES6 将 javascript 中的对象数据数组转换为另一种形式

转载 作者:行者123 更新时间:2023-11-28 17:28:44 25 4
gpt4 key购买 nike

所以我有以下数据结构

var data = [
{name:'AWB ', data:[12,13 ...]},
{name:'CTS', data:[40,53 ...]}
]

我有另一个映射名称的数组

var nameditems = [
{name:'AWB', json_col:'awb_no'},
{name:'CTS', json_col:'cts'}
]

从上面的示例来看,每个数组对象中的每个数据都有两个或更多项

我想将数据转换成这样

[

{awb_no:12, cts:40},
{awb_no:13, cts:53},
]

还有更多列,但为了简洁起见,我只包含前两列。此外,数据名称是动态的,但named_items json_col具有 key 对中的实际名称

所以我用 es6 尝试了以下操作

let resultarray = [];
const totalitems = data[0].data.length;
for (int i = 0; i < data[0].data.length; i++)
data.forEach(item => {
let jsoncolname = nameditems.find(col => col.name === item.name);
console.log(jsoncolname, json_col) //how do i add as key below

resultarray.push({}) //here am stuck
})

最佳答案

假设 data 数组在 data 数组内的所有项目上具有相同的长度。您可以通过映射通过 name

找到的相应 datanameditems 减少到另一个数组

var data = [{
name: 'AWB',
data: [12, 13, 14]
},
{
name: 'CTS',
data: [40, 53, 67]
}
]

var nameditems = [{
name: 'AWB',
json_col: 'awb_no'
},
{
name: 'CTS',
json_col: 'cts'
}
]

console.log(
nameditems.reduce(
(items, {
name,
json_col: prop
}) => data.find(item => item.name === name).data.map((value, index) => {
const obj = items[index] || {} // pick existing item or create new

obj[prop] = value // populate the prop

return obj
}),
[]
)
)

关于javascript - 使用 ES6 将 javascript 中的对象数据数组转换为另一种形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50935028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com