数组去重
/* 基于内置类的原型扩展方法 */ // function queryParams(url) { // // } (function (){ /* myUnique : 实现数组去重 * @params * @return * [array] 去重后的数组 * * */ (function myUnique(ary) { let obj = {}; for(let i = 0; i<this.length;i++) { let item = this[i]; if(typeof obj[item] !== "undefined") { this[i] = this[this.length-1]; this.length--; i--; continue; } obj[item] = item; } obj = null; return this } Array.prototype.myUnique = myUnique; }()) let ary = [1,2,3,1,2,3,1,1,2,3,5,6]; ary.myUnique() // 返回的是去重后的新数组,(也是array的实例) // ary.myUnique().sort((a,b)=>a-b) 返回排序后的数组 ary.myUnique().sort((a,b)=>a-b) //链式写法 console.log(ary)
~ function() {
function myUnique() {
let array = [];
this.forEach((item, index) => {
if (array.indexOf(this[index]) === -1) {
array.push(this[index])
}
})
return array;
}
Array.prototype.myUnique = myUnique;
}();
let ary1 = [1, 1, 2, 1, 4, 5, 6, 4, 55, 33, 44, 25, 36, 45, 36, 27];
console.log(ary1.myUnique());