针对集合的小方法

根据所提供的字符分组

/**
 * 根据所提供的字符分组
 * @param {Array} arr => 数组
 * @param {String} key => 需要分组的字段 
 */
function keyBy(arr, key) {
    return arr.reduce(function (newObj, obj) {
        if (!newObj[obj[key]]) {
            newObj[obj[key]] = [];
            newObj[obj[key]].push(obj);
        } else {
            newObj[obj[key]].push(obj);
        }
        return newObj;
    }, {});
}

测试我们写的方法

var arr = [{id:1},{id:2}]
var res = delListRep(arr,"id") // {1:[{id:1}],2:[{id:2}]}

根据所提供的字段排序

/**
 * 排序数组里的对象(集合)的某个字段排序
 * @param {Array} arr => 数组
 * @param {String} key => 字段名
 */
function sortObj(arr, key) {
    return arr.sort(function (m, n) {
        var key1 = m[key]
        var key2 = n[key]
        return key2 - key1
    })
}

测试我们写的方法

var arr = [{id:1},{id:2}]
var res = sortObj(arr,"id") // [{id:2},{id:1}]

根据所提供的字段去重

/**
 * 去除指定字段的重复集合
 * @param {Array} arr => 数组
 * @param {String} key => 需要去重的字段
 */
function delListRep(arr, key) {
    var keys = []
    for (let i = 0; i < arr.length; i++) {
        keys.push(arr[i][key])
    }
    return arr.filter((ele, i, arr) => keys.indexOf(ele[key]) == i)
}

测试我们写的方法

var arr = [{id:1},{id:2},{id:1}]
var res = delListRep(arr,"id") // [{id:1},{id:2}]

这样子我们就能简单的去重啦o( ̄▽ ̄)ブ 484神奇

最后,感谢各位观众老爷的观看

这是我的原创文章,如果觉得不错,可以打个赏~
0%