找出数组对象(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)
输出结果如下

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)