实现数组去重的方式

  1. 利用Es6中新的数据结构SetSet它类似于数组,但是成员的值都是唯一的,没有重复的值。可以通过搭配Array.from()转换为真实数组。

     let num = [2, 0, 1, 4, 9, 7, 5, 1, 2, 0];
         function unique(arr) {
           return Array.from(new Set(arr));
        }
    console.log(unique(num));
  2.  利用indexOf。遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组里面没有出现过,我们就添加,否则不添加。利用 新数组.indexOf(数组元素) 如果返回是 -1 就说明 新数组里面没有改元素。
     let num = [2, 0, 1, 4, 9, 7, 5, 1, 2, 0];
     let newArr = []
        for (let i = 0; i < num.length; i++) {
            if (newArr.indexOf(num[i]) === -1) {
                newArr.push(num[i]);
            }
        }
    console.log(newArr)
  3. 双重循环配合splice进行去重,使用了两个嵌套的for循环来比较数组中的元素。外部的for循环遍历数组中的每个元素,而内部的for循环则从当前元素之后的位置开始,逐个与其他元素比较。当发现数组中的两个元素相等时,通过splice方法将重复出现的元素从数组中删除。splice方法的第一个参数是要删除的元素的索引,第二个参数是要删除的元素个数。然后通过将j减1,以便在删除元素后正确地继续检查剩余的元素。
    let num = [2, 0, 1, 4, 9, 7, 5, 1, 2, 0];
        let newNum = [];
        function unique(arr) {
            for (let i = 0; i < arr.length; i++) {
                for (let j = i + 1; j < arr.length; j++) {
                    if (arr[i] === arr[j]) {
                        arr.splice(j, 1);
                        j--;
                    }
                }
            }
            return arr;
        }
        console.log(unique(num));

  4. 使用filter:通过Array的filter方法和indexOf或者includes来筛选出不重复的元素。filter方法接收一个回调函数作为参数。在这个例子中,回调函数接受三个参数:value:当前正在被处理的元素值。index:当前元素的索引。self:数组本身。

     let num = [2, 0, 1, 4, 9, 7, 5, 1, 2, 0];
        let newArr = num.filter((value, index, self) => {
            return self.indexOf(value) === index;
        })
        console.log(newArr);

相关推荐

  1. 实现数组方式

    2024-01-11 01:58:01       54 阅读
  2. js中数组对象方法

    2024-01-11 01:58:01       62 阅读
  3. js 数组6种方法

    2024-01-11 01:58:01       33 阅读
  4. List数据4种有效方法

    2024-01-11 01:58:01       45 阅读
  5. js多种数组方法

    2024-01-11 01:58:01       53 阅读
  6. js数组常见方法

    2024-01-11 01:58:01       35 阅读
  7. 对象数组通用方法

    2024-01-11 01:58:01       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 01:58:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 01:58:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 01:58:01       82 阅读
  4. Python语言-面向对象

    2024-01-11 01:58:01       91 阅读

热门阅读

  1. C++系列十五:字符串

    2024-01-11 01:58:01       48 阅读
  2. TensorRT加速推理入门-1:Pytorch转ONNX

    2024-01-11 01:58:01       44 阅读
  3. 神经网络中的损失函数(上)——回归任务

    2024-01-11 01:58:01       45 阅读
  4. vue element plus Form 表单

    2024-01-11 01:58:01       58 阅读
  5. Redis 为什么是单线程的?

    2024-01-11 01:58:01       62 阅读
  6. 65、python - 利用手写的网络,成功预测一张图片

    2024-01-11 01:58:01       60 阅读
  7. 【LintCode】920.会议室

    2024-01-11 01:58:01       58 阅读
  8. #Uniapp:uni-app中vue2生命周期--11个

    2024-01-11 01:58:01       57 阅读
  9. LeetCode每周五题_2024/01/08~01/12

    2024-01-11 01:58:01       83 阅读
  10. 2024.1.8力扣每日一题——回旋镖的数量

    2024-01-11 01:58:01       59 阅读
  11. HDMI2.1 Redriver 信号增强 支持8K60

    2024-01-11 01:58:01       63 阅读
  12. [Microsoft Edge] 如何彻底卸载 Edge

    2024-01-11 01:58:01       50 阅读
  13. 小程序开发之uniapp项目框架搭建

    2024-01-11 01:58:01       63 阅读
  14. VUE +element ui 表格实现数据轮播滚动效果

    2024-01-11 01:58:01       48 阅读