数组去重
let originalArray = [1,2,3,4,5,3,2,4,1]; // 方式1 const result = Array.from(new Set(originalArray)); console.log(result); // -> [1, 2, 3, 4, 5] // 方式2 const result = []; const map = new Map(); for (let v of originalArray) { if (!map.has(v)) { map.set(v, true); result.push(v); } } console.log(result); // -> [1, 2, 3, 4, 5] // 方式3 const result = []; for (let v of originalArray) { if (!result.includes(v)) { result.push(v); } } console.log(result); // -> [1, 2, 3, 4, 5] // 方式4 for (let i = 0; i < originalArray.length; i++) { for (let j = i + 1; j < originalArray.length; j++) { if (originalArray[i] === originalArray[j]) { originalArray.splice(j, 1); j--; } } } console.log(originalArray); // -> [1, 2, 3, 4, 5] //方式5 function noRepeat(originalArray ){ var newA = []; arr.forEach((val)=>{ if(newA.indexOf(val)<0){ newA.push(val) } }) return newA } //无法去重NaN //方式6 const unique = arr => { var obj = {} arr.forEach(value => { obj[value] = 0;//这步新添加一个属性,并赋值,如果不赋值的话,属性会添加不上去 }) return Object.keys(obj);//`Object.keys(对象)`返回这个对象可枚举属性组成的数组,这个数组就是去重后的数组 } console.log(unique(originalArray ))