下面介绍一下数组中去重的方案:
第一种:
1.创建一个新的数组存放结果
2.创建一个空对象
3.for循环时,每次取出一个元素与对象进行对比,
如果这个元素不重复,则把它存放到结果数组中,
同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到的对象中。
var duplicateRemove = arr =>{
        let array = [];
        let obj = {};
        for(let item of arr){
            if(!obj[item]){
                console.log(item);
                array.push(item);
                obj[item] = 1;
            }
        }
        return array;
    }
    var arr = [123,123,2,'hello',123,123,2,'你好','test','test'];
    alert(duplicateRemove(arr));
第二种,上面使用了部分ES6的新规范,下面这种方式直接使用ES6来实现,ES6中提供了新的数据结构 Set。
它类似于数组,但是成员的值都是唯一的,没有重复的值。
所以我们使用ES6来实现这个功能。非常的简单,上代码了:
    var duplicateRemove = arr => Array.from(new Set(arr));

    var arr = [123,123,2,'hello',123,123,2,'你好','test','test'];
    alert(duplicateRemove(arr));
ES6出了很多新的标准和方法,使得我们的代码可以便捷很多,科技让生活更美好。大家多多指教。

再补充一下,可以使用数组的indexOf方法来实现数组的去重,代码如下:
    const duplicateRemove = arr =>{
        let b = [];
        for(let i = 0;i<arr.length;i++){
            if(b.indexOf(arr[i])==-1){
                b.push(arr[i]);
            }
        }
        return b;
    }
    var a = [1,2,4,3,3,2];
    console.log(duplicateRemove(a));
使用indexOf()方法查找特定项在数组中的位置非常简单,支持它们的浏览器包括IE9+、Firefox 2+、
Safari 3+、Opera 9.5+和Chrome。
Logo

前往低代码交流专区

更多推荐