SOURCE

console 命令行工具 X clear

                    
>
console
const arrGroup = (arr, key) => {
  let newArr = [];
  let newObj = {};
  
  // 利用对象的key值不允许重复的特性
  let temp = {};
  for (let i = 0; i < arr.length; i++) {
    const item = arr[i];
    if (temp.hasOwnProperty(item[key])) {
      newArr.forEach(v => {
        if (v.key === item[key]) {
          v.list.push(item)
        }
      })
    } else {
      newObj = {
        key: item[key],
        list: [item]
      }
      temp[item[key]] = '0'
      newArr.push(newObj)
    }
  }
  
  return newArr;
};

const arr = [
    {
        id: 1,
        name: '张三'
    }, {
        id: 1,
        name: '李四',
    }, {
        id: 3,
        name: '王五',
    }
];

console.log(arrGroup(arr, 'id'))
<div class="tip">
    <p class="title">防抖</p>
    <div>
        点击右下角
        <span class="sp">Console</span>
        查看运行结果
    </div>
</div>
.tip {
    background-color: rgba(174,220,174,0.25);
    padding: 0.75rem;
    border-left: 0.35rem solid;
    border-radius: 0.25rem;
    margin: 1.5rem 0;
    font-size: 0.9rem;
    border-color: #5cb85c;
}

.title {
    font-size: 18px;
    font-weight: bolder;
    margin-top: 0;
}

.sp {
    background: orange;
}