素材巴巴 > 程序开发 >

JS 数组去重 数组过滤重复

程序开发 2023-09-04 07:39:29

JS 数组去重 数组过滤重复

  • 数组去重解释:
  • JS 数组去重 数组过滤重复

    function array_deduplication(arr) {return arr.filter(function (c, index) {return arr.indexOf(c) === index;});
     }
     

    理论概念说明:

    arr.filter
     

    定义:

    filter() 方法会创建一个新数组, 其包含通过所提供函数内部实现的逻辑过滤的所有元素。

    说人话:

    就是在 filter() 方法的回调函数中可以写一些过滤逻辑,逻辑为真的时候,当前元素将会返回,否则会被丢弃,这样就产生了一个新的数组,作为 filter() 的返回值。

    数组去重解释:

    文字解释:

    1. 不需去重数组
      假设数组值为 [1,2,3,4]
      遍历当前数组,元素1所在的位置为0、元素2的位置为1
    2. 需要去重数组
      假设数组值为[1,1,2,3,4]
      遍历当前数组,第一个元素1所在的位置为0、第二个元素1所在的位置为1、元素2的位置为2

    如果在数组中通过 indexOf 查找某个元素,获取到元素的下标和当前遍历的下标正好相等,则说明改元素是第一个出现的,如果不相同则说明是重复的。

    图表解释:

    如果你还在糊涂,请看下面表格
    在这里插入图片描述
    当遍历到第二个1时,通过indexOf获取到的下标是第一次出现1时的0,但是当前遍历的索引下标为1。两个值不相同则说明1不是第一次出现,因此是我们要过滤掉的对象。

    因此通过该方法就可以去重数组
    [1]: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
    [2]: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf


    标签:

    上一篇: NodeJS环境安装 下一篇:
    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。