数组中对象去重方法
应用场景
在某些场景下,我们需要将后端获取的一维数组,转化为二维数组的树形结构,才能方便我们使用;比如:城市、区域列表等等场景。
示例
数据格式如下:
arr: [
{ code: 1, text: '张三' },
{ code: 1, text: '张三' },
{ code: 2, text: '李四' },
{ code: 1, text: '张三' },
{ code: 3, text: '王五' },
{ code: 4, text: '周六' },
{ code: 3, text: '王五' }
],
处理函数
function() {
let list = []
let obj = {}
for (let i = 0; i < arr.length; i++) {
if (!obj[arr[i].code]) {
list.push(arr[i])
obj[arr[i].code] = true
}
}
}
处理结果:
list = [
{ code: 1, text: '张三' },
{ code: 2, text: '李四' },
{ code: 3, text: '王五' },
{ code: 4, text: '周六' }
],
obj = {1: true, 2: true, 3: true, 4: true}
方法总结
该方法的本质是通过,将原始数据中的主键code作为对象的key值,通过遍历方法实现。