📝 使用场景

  • 后端返回数据有多个相似数据需要去重

📐 实现原理

  • 通过让属性对应的唯一属性值作为判断依据,最后利用Object.values()达到去重目的,例如ID之类的

🚄 实现

✨方法封装✨


function arrayObjectDeDuplication(arr = [], key = "id") {
    // 判断如果传入数组为空数组则直接返回
    if (arr.length === 0) return;

    let dupArr = []; // 接受去重之后的数组
    const map = {}; // 存放去重时得到的对象数据
    arr.forEach(item => {
      if(!map[item[key]]){
        map[item[key]] = item // 如果当前属性值没有,则添加到map中
      }
    });
    dupArr = Object.values(map)
    return dupArr
}

export default arrayObjectDeDuplication

✨参数说明✨

参数 说明 类型
arr 需要去重的数组队形 Array
key 去重判断的值 String
dupArr 接受去重之后的数组 Array
map 存放去重时得到的对象数据 Object