1.使用ES6语法
a.最简洁的方法:使用set
const arr = [5,5,3,4,6,5,8,6]; console.log(Array.from(new Set(arr))) // [4,5,3,6,8] console.log([...new Set(arr)]) // [4,5,3,6,8]
b. reduce + includes
const a = arr.reduce((pre,cur) =>
pre.includes(cur) ? pre : [...pre,cur],[]);
console.log(a)
c.利用filter去重
const b = arr.filter((item,index,arr) => arr.indexOf(item,0) === index) console.log(b)
d.利用hasOwnProperty + filter去重
function duplicate(arr){
var obj = {};
return arr.filter(function(item,index,arr){
return obj.hasOwnProperty(typeof item + item) ?
false :(obj[typeof item + item] = true)
})
}
console.log(duplicate(arr))
2.排序 + 正则
let array = [1,2,2,3,1,4,5,6,4];
array.sort((a,b)=>a-b);
array = array.join(‘@‘)+‘@‘;
let reg = /(\d+@)\1*/g;
let arr = [];
array.replace(reg,($,$1)=>{
arr.push(parseFloat($1));
})
console.log(arr)
3.持续更新中。。。
原文:https://www.cnblogs.com/endoraLiu/p/12637762.html