数组去重

  1. /*
  2. 基于内置类的原型扩展方法
  3. */
  4. // function queryParams(url) {
  5. //
  6. // }
  7. (function (){
  8. /* myUnique : 实现数组去重
  9. * @params
  10. * @return
  11. * [array] 去重后的数组
  12. *
  13. * */
  14. (function myUnique(ary) {
  15. let obj = {};
  16. for(let i = 0; i<this.length;i++) {
  17. let item = this[i];
  18. if(typeof obj[item] !== "undefined") {
  19. this[i] = this[this.length-1];
  20. this.length--;
  21. i--;
  22. continue;
  23. }
  24. obj[item] = item;
  25. }
  26. obj = null;
  27. return this
  28. }
  29. Array.prototype.myUnique = myUnique;
  30. }())
  31. let ary = [1,2,3,1,2,3,1,1,2,3,5,6];
  32. ary.myUnique() // 返回的是去重后的新数组,(也是array的实例)
  33. // ary.myUnique().sort((a,b)=>a-b) 返回排序后的数组
  34. ary.myUnique().sort((a,b)=>a-b) //链式写法
  35. 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());