JavaScript 将数组中具有相同值的对象 取出组成新的数组

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://www.cnblogs.com/whyue/p/8143049.html

原文地址:https://www.cnblogs.com/aidixie/p/10156657.html