zoukankan      html  css  js  c++  java
  • 将数组里某个属性相同的对象合并成一个数组

    var array=[
            {id:1,name:'小明',sex:'男'},
            {id:2,name:'小刚',sex:'男'},
            {id:3,name:'小红',sex:'女'},
            {id:4,name:'小花',sex:'女'},
            {id:5,name:'小甜甜',sex:'女'},
        ]
        var obj={},newArr=[];
        array.forEach(function(item,suffix){
            //根据对象的属性是唯一的,将值作为对象的属性名
            if(!obj[item.sex]){
                var arr=[];
                arr.push(item);
                newArr.push(arr);
                obj[item.sex]=item;
            }else{
                newArr.forEach(function(value,index){
                    //如果已经存在  就循环新组的值将值插入属性相同的数组里   为了防止重复添加   只要和第一个比较就可以了
                    if(value[0].sex==item.sex){
                        value.push(item)
                    }
                })
            }
        })
        console.log(obj);
        console.log(newArr)

    来源:https://www.cnblogs.com/yuzihong/p/10495511.html

      方法二:

    var arr=[{name:2,id:3},{name:2,id:4},{name:3,id:5},{name:3,id:6},{name:1,id:1},{name:1,id:2}];
     
    // 传入一个数组
    // 按照特定方式格式化
    function sortArr(arr, str) {
        var _arr = [],
            _t = [],
            // 临时的变量
            _tmp;
     
        // 按照特定的参数将数组排序将具有相同值得排在一起
        arr = arr.sort(function(a, b) {
            var s = a[str],
                t = b[str];
     
            return s < t ? -1 : 1;
        });
     
        if ( arr.length ){
            _tmp = arr[0][str];
        }
        // console.log( arr );
        // 将相同类别的对象添加到统一个数组
        for (var i in arr) {
            console.log( _tmp);
            if ( arr[i][str] === _tmp ){
                console.log(_tmp)
                _t.push( arr[i] );
            } else {
                _tmp = arr[i][str];
                _arr.push( _t );
                _t = [arr[i]];
            }
        }
        // 将最后的内容推出新数组
        _arr.push( _t );
        return _arr;
    }
     
    sortArr( arr, 'name');

    来源:https://blog.csdn.net/wqnmlgbsz/article/details/118767609

     扩展:

    数组对象相同的key值合并,并且把对应的id放到一个数组

    https://blog.csdn.net/qq_43765727/article/details/98485490

     

  • 相关阅读:
    知识点:synchronized 原理分析
    知识点:spring 完全手册
    知识点:图说 Mysql 权限管理
    知识点:Mysql 基本用法之流程控制
    知识点:Mysql 基本用法之函数
    知识点:Mysql 基本用法之存储过程
    知识点:Mysql 基本用法之事务
    知识点:Mysql 基本用法之触发器
    知识点:Mysql 基本用法之视图
    知识点:MySQL表名不区分大小写的设置方法
  • 原文地址:https://www.cnblogs.com/sherryweb/p/15246104.html
Copyright © 2011-2022 走看看