美文网首页
数组去重方法

数组去重方法

作者: codeholding | 来源:发表于2017-10-23 21:40 被阅读0次

面值试中常会被问到的问题--数组去重方法,此处整理了6中方法,后续添加。
1、arr.filter()

var arr = [0,0,1,'a',1,2,'b','a','a'];
    var res = arr.filter(function(ele,index,array){
        return index === array.indexOf(ele);
    });
    document.write(res);

2、先排序再去重

   function unique(arr) {
        var arr2 = arr.sort();
        console.log(arr2);
        var res = [arr2[0]];
        for(var i = 1; i < arr2.length; i++){
            console.log(arr2[i]+','+res[res.length-1]);
            console.log(res);
            if(arr2[i] !== res[res.length-1]){
                res.push(arr2[i]);
            }
        }
        return res;
    }
    var arr3 = unique([0,0,1,'a',1,2,'b','a','a']);
    document.write(arr3);

3、利用对象的属性去重


    function unique(arr){
        var res =[];
        var json = {};
        for(var i = 0; i < arr.length; i++){
            if(!json[arr[i]]){
                res.push(arr[i]);
                json[arr[i]] = 1;
            }
        }
        return res;
    }
    var arr3 = unique([0,0,1,'a',1,2,'b','a','a']);
    document.write(arr3);

4、利用下标查询

function unique(arr){
        var newArr = [arr[0]];
        for(var i = 1; i < arr.length; i++){
            if(newArr.indexOf(arr[i]) == -1){
                newArr.push(arr[i]);
            }
        }
        return newArr;
    }
    var arr3 = unique([0,0,1,'a',1,2,'b','a','a']);
    document.write(arr3);

5、定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。

function unique(arr) {
        var res = [arr[0]];
        for(var i = 0; i < arr.length; i++){
            var repeat = false;
            for(var j = 0; j < res.length; j++){
                if(arr[i] == res[j]){
                    repeat = true;
                    break;
                }
            }
            if(!repeat){
                res.push(arr[i]);
            }
        }
        return res;
    }
    var arr2 = unique([0,0,1,'a',1,2,'b','a','a']);
    document.write(arr2);

6、es6的set方法

const res = new Set();
var arr =[0,0,1,'a',1,2,'b','a','a'];
arr.forEach(x => res.add(x)); 

console.log(s); 

相关文章

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • 数组

    数组 数组常用方法 数组去重

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

  • 数组去重方法

  • 数组去重方法

    const array = [1, 2, 3, '1', true, 'true', 9, 1, true] 使用...

网友评论

      本文标题:数组去重方法

      本文链接:https://www.haomeiwen.com/subject/ghrzuxtx.html