美文网首页
数组对象去重

数组对象去重

作者: AR7_ | 来源:发表于2020-06-12 14:55 被阅读0次

在项目中有个需求,就是获取到的设备数据,有设备类型、设备名和设备id,需要树形结构数据,设备类型在一级节点,设备在二级节点,设备类型有可能重复的,那么就需要去重,那怎么做到最后是树形数据呢
1、第一步,先遍历设备数据,将全部设备类型加载到树形数据treeData里,如下所示:

  {
  "label":"devtypexxxxx",
  "children":[]
}

然后去重,为了使用new Set()方式去重,在添加到treeData时,可以使用JSON.stringify(),代码如下所示:

        devices.forEach(item => {
            this.treeData.push(
              JSON.stringify({
                label: item.devtype,
                devtype: item.devtype,
                children: []
              })
            )
          })

然后将这个treeData去重,代码如下所示:

var array = Array.from(new Set(this.treeData))
var devtypeList = []
        array.forEach(item => {
            devtypeList.push(JSON.parse(item))
  })

devtypeList就是去重后的数组,那么判断设备如果是该设备类型的,就添加到children里,代码如下所示:

          devtypeList.forEach(item => {
            devices.forEach(dev => {
              if (item.devtype === dev.devtype) {
                item.children.push({
                  label: dev.devname,
                  devtype: dev.devtype,
                  devid: dev.devid
                })
              }
            })
          })

devtypeList就是最后的树形数据。

相关文章

  • 实现数组去重有哪些方式

    简单的数组去重 数组对象去重

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • 数组去重的四种方法

    利用双for循环去重 利用对象数组去重 利用对象数组去重并且记录重复次数 通过创建一个新数组进行数组去重

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • js reduce去重用法

    reduce不仅仅可以数据累加,还可以实现去重效果。 重复次数计算 数组去重 数组对象去重,转为数组 对象去重

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • 数组去重的几种方式

    上篇我们写到了数组中包含多条对象的去重方式数组中包含多条对象的去重方式,今天我们就写一下普通数组去重吧. 数组去重...

  • 数组对象去重的常见操作

    前言: 数组对象去重与数组去重的不同点在于,数组对象需要指定一个属性(key值)再进行去重。 1.数组对象的自定义...

网友评论

      本文标题:数组对象去重

      本文链接:https://www.haomeiwen.com/subject/hpngtktx.html