传统方法
const array = [1,5,2,3,4,2,3,1,3,4];
const unique = function (arr) {
const uniqueArr = [];
array.forEach((item) => {
!uniqueArr.includes(item) && uniqueArr.push(item);
})
return uniqueArr;
}
console.log(unique(array)); // 1, 5, 2, 3, 4
ES6
const unique2 = function (arr) {
return [...new Set(array)];
}
console.log(unique2(array)); // 1, 5, 2, 3, 4
扩展
传统方法
const unique3 = function (arr) {
return arr.filter((item, index) => {
return arr.indexOf(item) === index; // 1, 5, 2, 3, 4
})
}
最后再写到 Array.prototype 原型中
Array.prototype.unique = function() {
return this.filter((item, index) => {
return this.indexOf(item) === index;
})
}
console.log(array.unique.apply(array)); // 1, 5, 2, 3, 4
网友评论