JS合并数组中id相同的项目 去重合并

      function mergePropertyById(arr, property) {
        const tempIds = [],
          newArr = []
        for (const item of arr) {
          if (!tempIds.includes(item.id)) {
            const obj = { id: item.id }
            obj[property] = [item[property]]
            newArr.push(obj)
            tempIds.push(item.id)
          } else {
            for (const ele of newArr) {
              if (ele.id === item.id) {
                ele[property].push(item[property])
                break
              }
            }
          }
        }
        return newArr
      }
      const list = [
        { id: 1, name: 'A' },
        { id: 2, name: 'B' },
        { id: 1, name: 'C' },
        { id: 2, name: 'D' },
        { id: 2, name: 'E' }
      ]
      console.log(mergePropertyById(list, 'name')) // [{id: 1, name: ['A', 'C']}, {id: 2, name: ['B', 'D', 'E']}]

 

posted @ 2022-04-25 20:43  吴小明-  阅读(766)  评论(0编辑  收藏  举报