按关键字对对象数组进行分组
创始人
2024-10-14 10:30:48
0

我们可以使用JavaScript的Array.reduce()方法来按关键字对对象数组进行分组。该方法将一个回调函数作为参数,该函数接受累加器和当前元素作为参数,并返回累加器的值。在此过程中,我们可以创建一个新的对象,将每个关键字作为属性并存储相应的对象数组。

代码示例:

const arr = [
  { name: "apple", type: "fruit" },
  { name: "pear", type: "fruit" },
  { name: "carrot", type: "vegetable" },
  { name: "broccoli", type: "vegetable" },
  { name: "banana", type: "fruit" },
];

const groupBy = (arr, key) =>
  arr.reduce((acc, obj) => {
    const property = obj[key];
    acc[property] = acc[property] || [];
    acc[property].push(obj);
    return acc;
  }, {});

const result = groupBy(arr, "type");

console.log(result);

/* Output:
{
  fruit: [
    { name: 'apple', type: 'fruit' },
    { name: 'pear', type: 'fruit' },
    { name: 'banana', type: 'fruit' }
  ],
  vegetable: [
    { name: 'carrot', type: 'vegetable' },
    { name: 'broccoli', type: 'vegetable' }
  ]
}
*/

在上面的示例中,我们首先定义了一个对象数组,该数组具有名称和类型属性。接下来,我们定义了一个名为“groupBy”的函数,该函数接受一个数组和一个关键字作为参数,并使用reduce()方法生成已分组的对象。最后,我们调用函数,并传递数组和关键字作为参数,并将结果存储在变量“result”中。输出结果为按类型分组的对象数组。

相关内容

热门资讯

透视模板!智星德州插件最新版本... 透视模板!智星德州插件最新版本更新内容详解,哈糖大菠萝破解器(透视)原来是真的挂(哔哩哔哩);1、智...
透视模板!德普之星透视辅助,德... 透视模板!德普之星透视辅助,德普之星私人局辅助免费(透视)确实有透视器(哔哩哔哩)1、任何德普之星私...
透视资料!拱趴大菠萝挂哪里,h... 透视资料!拱趴大菠萝挂哪里,hhpoker辅助器(透视)原来有挂(哔哩哔哩)所有人都在同一条线上,像...
透视策略!德普之星app安卓版... 透视策略!德普之星app安卓版破解版,德普之星辅助软件(透视)都是真的有透视技巧(哔哩哔哩)1、起透...
透视总结!hardrock透视... 透视总结!hardrock透视工具,wpk插件(透视)原来真的有挂(哔哩哔哩)1、任何hardroc...
透视法子!wpk辅助软件,wp... 您好,wpk辅助软件这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩家...
透视项目!wepoker有辅助... 透视项目!wepoker有辅助插件吗,wepoker免费脚本(透视)真是有挂(哔哩哔哩)1、下载好w...
透视窍要!拱趴大菠萝机器人,德... 透视窍要!拱趴大菠萝机器人,德州局怎么透视(透视)确实是真的脚本app(哔哩哔哩)1、实时拱趴大菠萝...
透视资料!wepoker辅助透... 透视资料!wepoker辅助透视,sohoo poker辅助器(透视)总是是真的挂(哔哩哔哩)小薇(...
透视指南!impoker辅助,... 透视指南!impoker辅助,来玩app破解(透视)总是是真的透视工具(哔哩哔哩)1、每一步都需要思...