美文网首页
js 一维数组对象(根据对象某个值) 转 二维数组对象

js 一维数组对象(根据对象某个值) 转 二维数组对象

作者: Yyyyyyyyyujie | 来源:发表于2020-10-14 16:24 被阅读0次
    //要求:
    var arr = [{ a: 1 }, { a: 1 }, { a: 2 }, { a: 3 }, { a: 3 }, { a: 4 }, { a: 2 }]
    //输出结果 [[{ a: 1 }, { a: 1 }],[{ a: 2 }, { a: 2 }],[{ a: 3 }, { a: 3 }],[{ a: 4 }]]
    
    
      var arr = [{ a: 1 }, { a: 1 }, { a: 2 }, { a: 3 }, { a: 3 }, { a: 4 }, { a: 2 }]
      var result = []
      //先去重 然后 取值
      new Promise((resolve, reject) => {
        let newArr = screen(arr);
        resolve(newArr)
      }).then((newArr) => {
        for (let item of newArr) {
          let current = arr.filter((e) => {
            return item.a == e.a
          })
          result.push(current)
        }
        console.log(result)
      })
    
      //数组对象去重
      function screen(arr) {
        let map = new Map();
        for (let item of arr) {
          if (!map.has(item.a)) {
            map.set(item.a, item);
          }
        }
        return [...map.values()];
      }
    
    

    相关文章

      网友评论

          本文标题:js 一维数组对象(根据对象某个值) 转 二维数组对象

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