gpt4 book ai didi

javascript - 如何按键对对象数组进行分组?

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

如何通过对象键对对象数组进行分组,以基于分组创建新的对象数组?例如,我有一个汽车对象数组:

const array = [
{red: [ {height: 50} ]},
{green: [ {height: 20} ]},
{blue: [ {height: 30} ]},
{blue: [ {height: 40} ]},
{red: [ {height: 10} ]},
{green: [ {height: 60} ]}
]

我想创建一个新的对象数组。(关键是颜色)

const result = [
{red: [{height: 50}, {height: 10}]},
{green: [{height: 20}, {height: 60}]},
{blue: [{height: 30}, {height: 40}]}
]

我尝试使用 lodash.groupBy,但是我根本不知道如何解决这个问题。

最佳答案

使用 array reduce 可以迭代数据并计算结果对象。

const array = [
{ 'red': [ { height: 50 } ] },
{ 'green': [ { height: 20 } ] },
{ 'blue': [ { height: 30 } ] },
{ 'blue': [ { height: 40 } ] },
{ 'red': [ { height: 10 } ] },
{ 'green': [ { height: 60 } ] }
];

const res = array.reduce((acc, element) => {
// Extract key and height value array
const [key, heightValue] = Object.entries(element)[0];
// Get or create if non-exist, and push height value from array, index 0
(acc[key] || (acc[key] = [])).push(heightValue[0]);
return acc;
}, {});

console.log(res);

关于javascript - 如何按键对对象数组进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54177679/

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