zoukankan      html  css  js  c++  java
  • 数组去重的方法

    第一种: 利用Map对象和数组的filter方法
        var arr1 = [1, 2, 3, 1, 2, 4, NaN, undefined, NaN, undefined]
        function unique(arr) {
          const res = new Map()
          return arr.filter((a) => !res.has(a) && res.set(a))
        }
        var newArr = unique(arr1)
        console.log(newArr);
    结果:
    1.Map对象是ES6提供的一个新的数据结构,其中has的办法是返回一个布尔值,表示某个值是否存在当前的Mp对象之中,set的办法是给Map对象设置key/value。
    2.filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
    所以说,Map对象结合filter方法可以达到数组去重的效果~
     
    clear
        从映射中移除所有元素
    delete
        从映射中移除指定的元素
    forEach
        对映射中的每个元素执行指定操作
    get
        返回映射中的指定元素
    has
        如果映射包含指定元素,则返回 true
    set
         添加一个新建元素到映射
    toString
        返回映射的字符串表示形式
    valueOf
        返回指定对象的原始值
     
    二、filter()
    array.filter(function(currentValue,index,arr), thisValue)   返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
    参数: 
      currentValue 必须。当前元素的值
      index 可选。当前元素的索引值
      arr 可选。当前元素属于的数组对象
    thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
    如果省略了 thisValue ,"this" 的值为 "undefined"
    filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
    注意: filter() 不会对空数组进行检测。
    注意: filter() 不会改变原始数组。
     案例: done是 true 的
    var array1 = [
          { "id": 0, "info": "dsfffffffffffhd", "done": false },
          { "id": 1, "info": "dsfffffffffffhd", "done": true },
          { "id": 22, "info": "dsfffffffffffhd", "done": false },
          { "id": 3, "info": "dsfffffffffffhd", "done": true },
          { "id": 42, "info": "dsfffffffffffhd", "done": false },
          { "id": 53, "info": "dsfffffffffffhd", "done": false },
          { "id": 6, "info": "dsfffffffffffhd", "done": true }
        ]
    
        var ar = array1.filter(function(value, index, arr) {
          return value.done === true
        })
        console.log(ar);
    结果:

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    数组去重的方法
  • 相关阅读:
    什么是 rel="shortlink" ?
    HTML5 怎么兼容 XHTML
    Connection to `ssl://pecl.php.net:443' failed: mac系统
    记录小程序中经常犯的错误---在wxml中使用js方法(打脸不)
    从js对象数组中删除某一个对象
    彻底搞懂字符串提取方法 slice,substr,substring
    vue 项目中笔记-持续更新
    CF526G Spiders Evil Plan
    BZOJ2178 圆的面积并
    计算几何入门
  • 原文地址:https://www.cnblogs.com/maxiag/p/13472144.html
Copyright © 2011-2022 走看看