首页 > 编程语言 > 详细

JS数组去重方法(支持对象数组)

时间:2021-02-06 15:53:46      阅读:41      评论:0      收藏:0      [点我收藏+]
// 数组去重方法
        // 1:支持基本数据类型组成的数组
        // 比如 let arr = [1, 5, 6, 6, 1, true, ‘true‘, ‘6‘, 1, 1, 5];
        // 调用 RD(arr)
        // 返回 [1, 5, 6, true, "true", "6"]
        // 2:支持对象类型组成的数组,但是要声明是根据哪几个对象属性去进行判重的
        // 比如 let arr = [{name: ‘a‘, age: 15}, {name: ‘b‘, age: 15}, {name: ‘a‘, age: 14}, {name: ‘b‘, age: 15}];
        // 调用RD(arr, [‘name‘])
        // 返回 [{name: ‘a‘, age: 15}, {name: ‘b‘, age: 15}]
        // 调用RD(arr, [‘age‘])
        // 返回 [{name: ‘a‘, age: 15}, {name: ‘a‘, age: 14}]
        // 调用RD(arr, [‘name‘, ‘age‘])
        // 返回 [{name: ‘a‘, age: 15}, {name: ‘b‘, age: 15}, {name: ‘a‘, age: 14}]
        // 3:最后一个参数代表 遇到重复的 优先保留前面的还是优先保留后面的
        function RD(objs = [], attrs = [], desc = false) {
            return ((o => (desc && objs.reverse(), objs.filter((item) => ((s => (s == ‘‘ ? 
                ((t => (o[t] == void 0 && (o[t] = 1, !0) || !1))((item).toString() + (typeof item))) : 
                (o[s] == void 0 && (o[s] = 1, !0) || !1)
            ))(attrs.reduce((prev, cur) => prev + item[cur], ‘‘))))))({}));
        }

 

JS数组去重方法(支持对象数组)

原文:https://www.cnblogs.com/beiyudaoke/p/14381471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!