按多个属性对对象数组进行分组
创始人
2024-10-14 03:00:26
0

使用JavaScript的reduce()和Object.values()函数

示例代码:

const data = [ {name: 'John', age: 23, city: 'New York'}, {name: 'Alex', age: 23, city: 'Chicago'}, {name: 'Mark', age: 25, city: 'New York'}, {name: 'Joe', age: 25, city: 'Chicago'}, {name: 'David', age: 23, city: 'New York'} ];

const groupBy = (array, ...keys) => { return Object.values(array.reduce((accumulator, currentValue) => { const groupByKey = JSON.stringify(keys.map(key => currentValue[key])); if (!accumulator[groupByKey]) { accumulator[groupByKey] = {key: keys.map(key => currentValue[key])}; } accumulator[groupByKey].values = accumulator[groupByKey].values || []; accumulator[groupByKey].values.push(currentValue); return accumulator; }, {})); };

const result = groupBy(data, 'age', 'city'); console.log(result);

//Output: //[ // { // "key": [ // 23, // "New York" // ], // "values": [ // { // "name": "John", // "age": 23, // "city": "New York" // }, // { // "name": "David", // "age": 23, // "city": "New York" // } // ] // }, // { // "key": [ // 23, // "Chicago" // ], // "values": [ // { // "name": "Alex", // "age": 23, // "city": "Chicago" // } // ] // }, // { // "key": [ // 25, // "New York" // ], // "values": [ // { // "name": "Mark", // "age": 25, // "city": "New York" // } // ] // }, // { // "key": [ // 25, // "Chicago" // ], // "values": [ // { // "name": "Joe", // "age": 25, // "city": "Chicago" // } // ] // } //]

相关内容

热门资讯

微乐小程序透视辅助!微信小程序... 微乐小程序透视辅助!微信小程序游戏充值破解(开挂)工具-原来必备有挂1、有没有辅助教程、有透视吗等服...
微乐小程序黑科技!微乐自建房脚... 微乐小程序黑科技!微乐自建房脚本免费下载入口(开挂)插件-果然有挂存在有挂1、有没有辅助教程、有透视...
微乐小程序透视挂!微乐河南家乡... 微乐小程序透视挂!微乐河南家乡麻将辅助脚本(开挂)app-其实教你是有挂1、不需要AI权限,帮助你快...
微乐小程序存在有挂!微信小程序... 微乐小程序存在有挂!微信小程序游戏充值破解(开挂)软件-本来推荐是真的挂1、下载好脚本下载之后点击打...
微乐小程序透视辅助!微乐小程序... 微乐小程序透视辅助!微乐小程序自建房插件免费(开挂)插件-切实解密是真的挂;能透视中分为三种模型:模...
微信小程序微乐破解器!微乐自建... 微信小程序微乐破解器!微乐自建房插件免费软件(开挂)方法-好像解迷存在有挂1、有没有辅助教程、有透视...
微信小程序黑科技免费!微乐自建... 微信小程序黑科技免费!微乐自建房脚本免费入口(开挂)app-一贯有挂是有挂1、辅助器安装包、辅助器2...
微信小程序黑科技免费!微信小程... 微信小程序黑科技免费!微信小程序微乐房间有技巧吗(开挂)教程-本来曝光存在有挂1、每一步都需要思考,...
微乐小程序存在有挂!微乐小程序... 微乐小程序存在有挂!微乐小程序辅助教程(开挂)方法-原来分享是有挂;1、每一步都需要思考,不同水平的...
微乐小程序真的有挂!微乐家乡小... 微乐小程序真的有挂!微乐家乡小程序修改器(开挂)教程-一贯分享存在有挂1、点击下载安装,脚本分类一目...