共计 563 个字符,预计需要花费 2 分钟才能阅读完成。
// 方法一:时间复杂度为 O(n)。通过创建空的 obj 对象,遍历数组的时候查找 obj 对象中是否有值,没有的话以该元素创建一个属性并赋值,同时遍历的数组元素 push 进 res 数组
Array.prototype.unique = function () {let obj = {};
let res = [];
for(let i = 0;i < this.length;i++){if(!obj[this[i]]){obj[this[i]] = {}; //json[this[i]] 可以随意赋值
res.push(this[i]);
}
}
return res;
}
console.log([1,1,2,2,3].unique()) //[1,2,3]
// 方法二:将 res 数组中上一个元素与原数组中的每个元素进行比较,将不同于上一个元素的元素放入 res 数组中
Array.prototype.unique = function () {console.log(this)
let res = [this[0]];
for(let i = 0;i < this.length;i++){if(this[i] != res[res.length-1]){res.push(this[i]);
}
}
return res;
}
console.log([1,1,2,2,3].sort().unique())
我的微信公众号:天字一等
正文完
发表至: javascript
2019-05-29