javaScript去除数组中的相同元素

1. js代码

var arr = [1,2,3,4,5,2,3];
/*var arr = ["ww","name","ww","test","ranran","ranran",123,"123",123];*/
var result = []; //定义一个空的数组,用来保存处理后的数据

/*
    方法一:
    isMatch方法用来判断n是否在新数组中已存在,存在的话返回true,否则返回false;
    unique方法用来遍历需要处理的数组,查看其在新数组中是否存在,如果不存在就保存在result中
    无法区分"123"和123
*/
function isMatch(array, n) {
    for(var i=0;i<array.length;i++) {
        if(array[i] === n) {
            return true;
        }
    }
    return false;
};

function unique1(array) {
    for(var i=0;i<array.length;i++) {
        if(!isMatch(result, array[i])) {
            result.push(array[i]);
        }
    }
    return result;
};

console.log(unique1(arr));

/*
    方法二:
    使用indexOf()函数,如果不存在则返回-1
    无法区分"123"和123
*/

function unique2(array) {
    for(var i=0; i<array.length; i++) {
        if(result.indexOf(array[i]) == -1) {
            result.push(array[i]);
        }
    }
    return result;
}

console.log(unique2(arr));



/*
    方法三:
    将数组元素转为对象的 key,key不能重复
    可以区分"123"和123
*/
function unqiue3(array){
    var cache=[];
    var myresult=[];
    //将数组元素转为对象的 key
    for(var i=0;i<array.length;i++){
        cache[array[i]]=i;
    };

    //存储 key(实际的数组元素)
    for(key in cache){
        myresult.push(key);
    };

    return myresult;
}

console.log(unqiue3(arr));

2. 运行结果

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值