首页 > 解决方案 > 如何使用js对对象数组中的重复数据进行精细处理?

问题描述

我有以下对象数组,例如

[  
   {  
      "id":"30772",
      "posimage":"/b/l/blue-shirt_1_1.jpg",
      "position":"Position Front",
      "tech":"Screen Print"
   },
   {  
      "id":"30771",
      "posimage":"/b/l/blue-shirt_3.jpg",
      "position":"Position Front",
      "tech":"Screen Print"
   },
   {  
      "id":"30772",
      "posimage":"/b/l/blue-shirt_1_1.jpg",
      "position":"Position Front",
      "tech":"Embroidery"
   },
   {  
      "id":"30771",
      "posimage":"/b/l/blue-shirt_3.jpg",
      "position":"Position Front",
      "tech":"Embroidery"
   }
]

在这里,我有重复的值,例如"id":"30772", "position":"Position Front" 我需要获取重复的位置,并且需要在警告框中给出,例如Position Front is repeat

标签: javascriptjqueryarraysobjectfilter

解决方案


const items = [{  
  "id":"30772",
  "posimage":"/b/l/blue-shirt_1_1.jpg",
  "position":"Position Front",
  "tech":"Screen Print"
},
{  
  "id":"30771",
  "posimage":"/b/l/blue-shirt_3.jpg",
  "position":"Position Front",
  "tech":"Screen Print"
},
{  
  "id":"30772",
  "posimage":"/b/l/blue-shirt_1_1.jpg",
  "position":"Position Front",
  "tech":"Embroidery"
},
{  
  "id":"30771",
  "posimage":"/b/l/blue-shirt_3.jpg",
  "position":"Position Front",
  "tech":"Embroidery"
}]

items.forEach(item => {
    const result = items.filter(it => it.id === item.id)
        if (result.length > 1) {
            return 'duplicate value exists';
        } 
        return 'no duplicates';
 })

推荐阅读