zoukankan      html  css  js  c++  java
  • filter()数组去重,数组对象去重

    filter去重首先要清楚在数组中indexOf的含义

    indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

    1.简单数据类型去重

    let arr = ['a', 'b', 'c', 'c', 'd', 'd']
    let outPut = arr.filter((item, index) => arr.indexOf(item) == index)
     console.log(outPut) // ['a', 'b', 'c', 'd']
    

    2.数组对象去重

    let arr = [
      {
        name: 'Jack'
      },
      {
        name: 'Jack'
      },
      {
        name: 'Tom'
      },
      {
        name: 'Edward'
      },
    ]
    let arr2 = arr.filter((item, index) => {
      let temArr = []
      arr.forEach(item2 => temArr.push(item2.name))
      return temArr.indexOf(item.name) == index
    })
    // 对象的某个属性放入临时数组,对比临时数组中元素所在对象的索引,
    // 多个对象可push多个,均不相同return ..&&..   有一不同 return ..||..
    // console.log(arr2) 
    // [ { name: 'Jack' }, { name: 'Tom' }, { name: 'Edward' } ]
    3.数组对象去重

    let arr = [
      {
        name: 'Jack'
      },
      {
        name: 'Jack'
      },
      {
        name: 'Tom'
      },
      {
        name: 'Edward'
      },
    ]
    unique(arr) {
                    const res = new Map();
                    return arr.filter((arr) => !res.has(arr.name) && res.set(arr.name, 1));
                },
    this.unique(arr)
    4.filter
      let list = [{},{}]
              const arr = list.filter(item => { return item.dictsCode == this.formInline.sampleType }) 
      if (arr.length) {
        //
               this.formInline.sampleName = arr[0].dictsNameC
            }
  • 相关阅读:
    iscsi一致性的测试验证方法
    ceph各个版本之间参数变化分析
    rgw的rgw_thread_pool_size配置调整
    rgw前端替换civetweb为beast
    配置内网访问的TV
    关于vm.min_free_kbytes的合理设置推测
    rbd的删除回收站功能
    python爬取微博热门话题榜
    Selenium+Pytest自动化测试框架—禅道实战
    python带参数装饰器的两种写法
  • 原文地址:https://www.cnblogs.com/wssdx/p/13581313.html
Copyright © 2011-2022 走看看