找出数组对象(json数组)中重复的项
·
欢迎关注微信公众号:【 全栈攻略 】
我们做的最多的业务场景是去重,今天遇到的需求是找出数组对象中重复的项
直接上代码:
let arr = [
{id: 1, sku: 101, name: 'sku101'},
{id: 2, sku: 102, name: 'sku102'},
{id: 3, sku: 103, name: 'sku103'},
{id: 4, sku: 101, name: 'sku101'},
{id: 5, sku: 102, name: 'sku102'},
{id: 6, sku: 103, name: 'sku103'},
{id: 7, sku: 104, name: 'sku104'},
{id: 8, sku: 105, name: 'sku105'},
]
现在的需求是找出sku相同的项
/**
* 找出数组对象中重复的项 放在一个新数组中
* @param {*} data 要找的数组
*/
getRepeatData(data) {
let result=[];
let obj = {};
for (let i = 0; i < data.length; i++) {
const el = data[i];
for (let y = i+1; y < data.length; y++) {
const val = data[y];
if( el.sku == val.sku ) {
if(!obj[el.id]){
result.push(el)
obj[el.id] = true
}
if(!obj[val.id]){
result.push(val)
obj[val.id] = true
}
}
}
}
return result
}
getRepeatData(arr)
输出结果如下
更多推荐
所有评论(0)