将数组相同对象放入中的对象整合放入一个数组对象里

modelDatareset(arr, str) {
      var _arr = [],
        _t = [],
        // 临时的变量
        _tmp

      // 按照特定的参数将数组排序将具有相同值得排在一起
      arr = arr.sort(function (a, b) {
        var s = a[str],
          t = b[str]

        return s < t ? -1 : 1
      })

      if (arr.length) {
        _tmp = arr[0][str]
      }
      // 将相同类别的对象添加到统一个数组
      for (var i in arr) {
        if (arr[i][str] === _tmp) {
          _t.push(arr[i])
        } else {
          _tmp = arr[i][str]
          _arr.push(_t)
          _t = [arr[i]]
        }
      }
      // 将最后的内容推出新数组
      _arr.push(_t) //获取到所有整合数据

      // 终极整合
      var integration = []
      _arr.forEach((item) => {
        var eee = { label: '', value: '', children: [] }
        item.forEach((self) => {
          if (eee.label != self.brandName) {
            eee.label = self.brandName
            eee.value = self.brandId
            let obj = {
              label: self.name,
              value: self.id,
            }
            eee.children.push(obj)
          } else {
            let obj = {
              label: self.name,
              value: self.id,
            }
            eee.children.push(obj)
          }
        })
        integration.push(eee)
      })
      return integration
    },

  

 

 

posted @ 2022-11-02 17:36    阅读(24)  评论(0编辑  收藏  举报