gpt4 book ai didi

javascript - 将对象数组的值映射到对象属性

转载 作者:行者123 更新时间:2023-12-01 02:21:28 25 4
gpt4 key购买 nike

如何将对象值数组转换为对象属性?我想把这个转过来

const array = [
{
"age_group": [
{
"range": "0-20",
"total_count": 100
},
{
"range": "21-30",
"total_count": 200
},
],
"machine": {
"name": "SK2DS0011",
}
}
]

进入此

[{name: "SK2DS0011", "0-20": 100, "21-30": 200}]

我一直坚持使用reduce。

temp_arr = ori.reduce((accum, arr, i) => {
return accum['abc'] = arr.age_data.map(o => ({[o.range]: o.count}))
},{})

也许我在reduce中使用了错误的map。

最佳答案

您可以使用array#map来生成对象数组。对于每个 age_group,您可以使用 array#map、展开语法和 Object.assign()创建范围和total_count对象。您可以使用 array_reduce 生成所有范围的总和。

const array = [{ "age_group": [{ "range": "0-20", "total_count": 100 }, { "range": "21-30", "total_count": 200 }, ], "machine": { "name": "SK2DS0011", } }],
result = array.map(({age_group, machine}) => {
const {name} = machine;
const obj = Object.assign(...age_group.map(({range, total_count}) => ({[range] : total_count})));
const total = age_group.reduce((s,o) => s + +o.total_count, 0);
return {name, ...obj, total};
});
console.log(result);

关于javascript - 将对象数组的值映射到对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49188611/

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