(arr, key)
| 22 | ] |
| 23 | |
| 24 | function unique(arr, key) { |
| 25 | const result = {} // 数组元素对象的key值相同 则覆盖对象 |
| 26 | const finalResult = [] // 去重后的数组 |
| 27 | // 遍历数组 去重对象相同键值 |
| 28 | arr.forEach((item) => { |
| 29 | result[item[key]] = item // id(或者其他已知键名)为键名 相同键名覆盖 后出现的覆盖前面的 |
| 30 | }) |
| 31 | // 获取对象key值的数组对象元素 |
| 32 | for (const keyName in result) { |
| 33 | finalResult.push(result[keyName]) |
| 34 | } |
| 35 | return finalResult // 返回去重数组 |
| 36 | } |
| 37 | // 对id值相同的对象进行去重 |
| 38 | console.log('后面key值相同的元素覆盖前面的', unique(oldArr, 'id')) |
| 39 |