数组去重
/*
基于内置类的原型扩展方法
*/
// 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());