数组去重方法

方法一:

// 字典方式:同查找数组中出现次数最多。
// 1: 借用对象属性方法,将数组中的元素添加为对象的属性,遍历数组元素的时候查询对象是否已经有该属性,如果有则不重复添加
var arr=[1,2,3,3,2,1,4];
//下标   0 1 2 3 4 5 6 
    // 声明一个空对象,来保存遍历数组的元素
    var dict={};
    // 遍历arr数组元素,每遍历一个元素,就把当前元素作为属性值添加到字典dict中,属性值随便写
    for(var i=0;i<arr.length;i++){
        dict[arr[i]]=1;
        // arr[0]=1  => dict[1]=1
        // arr[1]=2  => dict[2]=1
        // arr[2]=3  => dict[3]=1
     }
//   console.log(dict);//Object   {1: 1, 2: 1, 3: 1, 4: 1}
// 用字典的方式:不允许出现重复的下标:
//   {
//   1:1
//   2:1 
//   3:1   3:1   出现多个时就会覆盖掉
//   4:1
//   }
    // 遍历字典,仅获取属性名,不用属性值:
    var res=[],i=0;
    for(res[i++] in dict);
        console.log(res);
            
//             var res=[];
//             var i=0;
//             for(res[i] in dict){
//                 i++;
//             }
//        console.log(res);//Array(4)  ["1", "2", "3", "4"]

方法二:ES6数组去重方法
Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员),
操作方法有:add(value)、delete(value)、has(value)、clear();
遍历方法有:keys()、values()、entries()、forEach()
1、ES6——new Set方法

const myArray = [1,1,2,2,3,3,4,4,5,5]
console.log([...new Set(myArray )]);// [1, 2, 3, 4, 5]

2、Array.from(该方法可以将 Set 结构转为数组)

function dedupe(array) {
  return Array.from(new Set(array));
}
dedupe([1, 1, 2, 3]) // [1, 2, 3]

作者:Julian小龙虾
链接:https://www.jianshu.com/p/fef2f1e9b544
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值