首页 > 编程语言 > 详细

js常用的数组去重方法

时间:2021-02-26 19:26:00      阅读:43      评论:0      收藏:0      [点我收藏+]

成长就是上善于总结学习---学到了才是自己的

给出以下数组

var arr1 = new Array(‘1‘,‘2‘,‘3‘,‘3‘,‘5‘,‘4‘,‘5‘,‘6‘,‘5‘,‘5‘,‘88‘);

实现对数组的去重

1、 双重for循环去重

技术分享图片
Array.prototype.Duplicate = function() {
    let arr = this;
    for(let i = 0; i < arr.length-1; i++) {
      for (let j = i+1; j < arr.length; j++) {
          if (arr[i] == arr[j]) {
              arr.splice(j, 1);
              j--;  // 删除元素之后,需要将数组的长度也减1,否则无法去除掉后面相同的值.
          };
      };
    };
    return arr;
}
技术分享图片

2、 利用递归调用去重

技术分享图片
Array.prototype.Duplicate = function() {
    let arr = this;
    arr.sort();
    function loop(index) {
        if (index > 1) {
            if (arr[index] == arr[index-1]) {
                arr.splice(index, 1);
            };
            loop(index-1);
        };
    };
    loop(arr.length-1);
    return arr;
}
技术分享图片

3、 利用对象去重

技术分享图片
Array.prototype.Duplicate = function() {
    let arr = this;
    let obj = {}
    let arr2 = []
    for (let i = 0; i < arr.length; i++) {
        if (!obj[arr[i]]) {
            obj[arr[i]] = true;
            arr2.push(arr[i]);
        }
    };
    return arr2;
}
技术分享图片

4、 利用indexOf

技术分享图片
Array.prototype.Duplicate = function() {
    let arr = this;
    let arr2 = []
    for (let i = 0; i < arr.length; i++) {
        if (arr2.indexOf(arr[i]) == -1) {
            arr2.push(arr[i]);
        }
    };
    return arr2;
}
技术分享图片

5、 利用es6 includes方法判断

技术分享图片
Array.prototype.Duplicate = function() {
    let arr = this;
    let arr2 = [];
    for (let i = 0; i < arr.length; i++) {
        if (!arr2.includes(arr[i])) {
            arr2.push(arr[i]);
        }
    }
    return arr2
}
技术分享图片

console.log(arr1.Duplicate().toString());

// 1,2,3,5,4,6,88

js常用的数组去重方法

原文:https://www.cnblogs.com/yajun-cui/p/14452992.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!