前端-dom-bom/(前端-dom-bom)Ts-(前端-dom-bom)Typescript/(前端-dom-bom)Js-(前端-dom-bom)JavaScript-ES-ECMAScript/ES6-ECMAScript6 js

方法之一:(利用ES6中的Set对象):⭐

1. 实例:

var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,
		   undefined,null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
let rst = [...new Set(arr)];
//[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {}, {}]

1.1. 说明:

  1. child::Array.from()

适用范围

不适用

  • 无法去重用户定义的对象
    • 包括空对象{}
    • 包括{name: tony}

2. 特点:

  1. 代码量最少

方法之一:搬动新元素

实例

function unique(arr) {
    var array =[];
    for(var i = 0; i < arr.length; i++) {
            if( !array.includes( arr[i]) ) {//includes 检测数组是否有某个值
                    array.push(arr[i]);
              }
    }
    return array
}

方法之一:删除重复元素

实例

function unique(arr){            
        for(var i=0; i<arr.length; i++){
            for(var j=i+1; j<arr.length; j++){
                if(arr[i]==arr[j]){         //第一个等同于第二个,splice方法删除第二个
                    arr.splice(j,1);
                    j--;
                }
            }
        }
return arr;
}

全部方法:

JavaScript数组去重(12种方法,史上最全) - SegmentFault 思否