如何进行数组去重

本文介绍了一种JavaScript数组去重函数的实现方式,该函数能够处理包含原始类型和对象类型的复杂数组,通过使用辅助数组和键集合确保去重的有效性和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:编写一个数组去重函数。(使用尽量多的方法来实现)
//如输入数组[1,"a",{b:2},{c:3},{b:2},{b:"2"},"1","a"],返回[1,"a",{b:2},{c:3},"1"]
 
function unique(arr) {
    var temp=[];    //存储新数组
    var keys = [];  //存储对象键集合
  for(var i=0; i<arr.length; i++) {
      var a = arr[i];
    if(typeof a !== "object") {
        var idx = temp.indexOf(a)
        if(idx>-1){
            continue;
        }else {
            temp.push(a);
        }
    } else {
        for(var k in a) {
            var idx1 = keys.indexOf(k); 
            if(idx1===-1) {  //如果在keys中还不存在对象
                keys.push(k);  //存储键
                temp.push(a);  //值存储新数组
            }
        }
    }
    
  }
  return temp;
}

 

转载于:https://www.cnblogs.com/echo2016/p/8982339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值