统计
  • 建站日期:2019-12-01
  • 文章总数:2002 篇
  • 评论总数:2124 条
  • 分类总数:21 个
  • 最后更新:11月21日
文章 未分类

JavaScript将数组中对象按指定字段分组,拆分为多个数组,非常好用!

程序员阿鑫
首页 未分类 正文


JavaScript将数组中对象按指定字段分组,拆分为多个数组,非常好用!
-程序员阿鑫-带你一起秃头
-第1
张图片
将数组中的对象数据按照某个属性值进行分组,拆分为多个数组

示例数组结构

let list = [{
      "name": "aa",
      "sex": '0'
    },
    {
      "name": "bb",
      "sex": '1'
    },
    {
      "name": "cc",
      "sex": '0'
    },
    {
      "name": "dd",
      "sex": '1'
    }];

将数组数据按照性别进行分组

function groupBy(arr, fn) {
    let group = {}
    arr.map(item => {
        let type = JSON.stringify(fn(item))
        group[type] =group[type] || []
        group[type].push(item)
    })

    return Object.keys(group).map(item => {
        return group[item]
    })
}
//调用返回值
let res = groupBy(list, function(res) {
    return res.sex
})
//输出结果
console.log(res);

结果数据结构示例

[
    [
        { name: 'aa', sex: '0' }, { name: 'cc', sex: '0' }
    ],
    [
        { name: 'bb', sex: '1' }, { name: 'dd', sex: '1' }
    ]
]

包含的方法 Object.keys(data),返回值为数组
data为对象:返回数组内容为对象的key
obj = { name: ‘aa’, age: ‘18’, sex: 1 }
Object.key(obj) ⇒ [‘name’, ‘age’, ‘sex’]

data为字符串或数组:返回数组内容为下标索引
arr = [‘a’, ‘b’, ‘c’]
str = ‘hello’
Object.keys(arr) ⇒ [‘0’, ‘1’ ,‘2’]
Object.keys(str) ⇒ [‘0’, ‘1’ ,‘2’, ‘3’, ‘4’]

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2022-10-28,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
鸿蒙工具箱/华为鸿蒙/荣耀MagicUI系统专用优化工具 桌面版
« 上一篇
知识付费分站代理自助下单系统 PHP网站源码 自带多款模板
下一篇 »

发表评论