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