1.for循环的嵌套
let arr = [1,3,5,7,9,10,11,23,56,45,11,1,3,1,1,14] 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))
2.indexof去重 新建一个空数组,把数组中的数字放入新数组查找,没有找到返回-1,就添加进入新的数组
let arr = [1,3,5,7,9,10,11,23,56,45,11,1,3,1,1,14]
function unique(arr) { let newArr = []; for (let i=0;i<arr.length;i++){ if (newArr.indexOf(arr[i]) === -1){ newArr.push(arr[i]) } } return newArr } console.log(unique(arr))
3.ES6中的Set方法去重
let arr = [1,3,5,7,9,10,11,23,56,45,11,1,3,1,1,14] function unique(arr) { return Array.from(new Set(arr)) } console.log(unique(arr))
4.filter+indexof进行去重
let arr = [1,3,5,7,9,10,11,23,56,45,11,1,3,1,1,14] function unique(arr) { return arr.filter((item, index, arr)=> { return arr.indexOf(item, 0) === index; }); } console.log(unique(arr))