一、New Set()
let arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}]; function unique(arr) { return Array.from(new Set(arr)); } console.log(unique(arr));// [1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {…}, {…}]
二、Array.sort()
function unique(arr) { arr = arr.sort(); let array = [arr[0]]; for (let i = 1; i < arr.length; i++) { if (arr[i] !== arr[i-1]) { array.push(arr[i]); } } return array; } console.log(unique(arr));//[0, 1, 15, NaN, NaN, "NaN", {…}, {…}, "a", false, null, "true", true, undefined]
三、Array.indexOf()
function unique(arr) { let array = []; for (let i = 0; i < arr.length; i++) { if (array.indexOf(arr[i]) === -1) { array.push(arr[i]); } } return array; } console.log(unique(arr));//[1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]
四、双重for循环
function unique(arr) { for (let i = 0; i < arr.length; i++) { for (let j = i+1; j < arr.length; j++) { if (arr[i] === arr[j]) { arr.splice(j, 1); j--; } } } return arr; } console.log(unique(arr)); //[1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]