阅读 48

javascript根据相同的值生成二维数组

两种方法:

1.forEach

   var list = [
        { id: 1, num: 3, },
        { id: 1, num: 3, },
        { id: 1, num: 2, },
        { id: 2, num: 1, },
        { id: 2, num: 2, },
        { id: 3, num: 2, },
        { id: 3, num: 3, },
    ]

    var result = [];
    list.forEach((item, index) => {
        var { id } = item;
        if (!result[id]) {
            result[id] = {
                id,
                value: []
            }
        }
        result[id].value.push({ num: item.num });
    });
    var data = Object.values(result);

 

2.Array.prototype.reduce()方法

const groupBy = (objectArray, property) => {
        return objectArray.reduce((acc, obj) => {
          var key = obj[property];
          if (!acc[key]) {
            acc[key] = [];
          }
          acc[key].push(obj);
          return acc;
        }, {})
      }


var groupData = Object.values(groupBy(list, ‘id‘))

console.log(groupData)

 

原数组

 

 

转二维数组后的新数组

 

原文:https://www.cnblogs.com/echoyu/p/15308022.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐