【求助】JS两组数组比较:

新手上路,请多包涵

如:

let arr1 = [{
  "spec_name_id": 20,
  "specs_val_id": 188,
  "is_default": 1,
  "name": "星空蓝",
  "disable": 0
}, {
  "spec_name_id": 20,
  "specs_val_id": 189,
  "is_default": 0,
  "name": "珍珠白",
  "disable": 0
}, {
  "spec_name_id": 23,
  "specs_val_id": 192,
  "is_default": 0,
  "name": "12GB+512GB",
  "disable": 0
}, {
  "spec_name_id": 23,
  "specs_val_id": 191,
  "is_default": 1,
  "name": "12GB+256GB",
  "disable": 0
}, {
  "spec_name_id": 23,
  "specs_val_id": 190,
  "is_default": 0,
  "name": "8GB+256GB",
  "disable": 0
}, {
  "spec_name_id": 24,
  "specs_val_id": 193,
  "is_default": 1,
  "name": "大",
  "disable": 0
}, {
  "spec_name_id": 24,
  "specs_val_id": 194,
  "is_default": 0,
  "name": "中",
  "disable": 0
}, {
  "spec_name_id": 24,
  "specs_val_id": 195,
  "is_default": 0,
  "name": "小",
  "disable": 0
}, {
  "spec_name_id": 24,
  "specs_val_id": 196,
  "is_default": 0,
  "name": "超大",
  "disable": 0
}, {
  "spec_name_id": 24,
  "specs_val_id": 197,
  "is_default": 0,
  "name": "迷你",
  "disable": 0
}]
let arr2 = [{
  "spec_name_id": 20,
  "specs_val_id": 188
}, {
  "spec_name_id": 23,
  "specs_val_id": 190
}, {
  "spec_name_id": 23,
  "specs_val_id": 191
}, {
  "spec_name_id": 24,
  "specs_val_id": 193
}]
判断 arr1 与 arr2比较,如果相同的specs_val_id , 则arr disable 为 0 , 不同为1 ,该怎么写,谢谢大神
阅读 1.2k
1 个回答

通过循环可以比较;

let arr = arr1.map(item1 => {
    let isFind = arr2.find(item2 => {
      return item1.specs_val_id === item2.specs_val_id
    })
    if (isFind) {
      item1.disable = 1
      return item1
    }
    return item1
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题