猿问

js 两个数组对象如何判断是否有不相同的元素

如题,现有两个数组

arr1 = [
    {'name': '笔记本' , 'value' : '2', 'type' : '1'},
    {'name': '记事本' , 'value' : '3', 'type' : '1'},
    {'name': '书本' , 'value' : '3', 'type' : '1'},
    {'name': '笔本' , 'value' : '2', 'type' : '1'},
    {'name': '笔记本' , 'value' : '4', 'type' : '1'}
  ]

arr2 = [
    {'name': '笔记本' , 'value' : '2', 'type' : '1' , num: '22', default: true},
    {'name': '记事本' , 'value' : '3', 'type' : '1', num: '22', default: true},
    {'name': '黑板' , 'value' : '6', 'type' : '2', num: '22', default: true},
    {'name': '画板' , 'value' : '5', 'type' : '1', num: '22', default: true},
    {'name': '书本' , 'value' : '3', 'type' : '1', num: '22', default: true},
    {'name': '笔本' , 'value' : '2', 'type' : '1', num: '22', default: true},
    {'name': '笔记本' , 'value' : '4', 'type' : '1', num: '22', default: true}
  ]

要判断arr1里所有元素的name跟value是否与arr2的元素的name和value有完全匹配项,如果arr1里有一个对象里的name与value在arr2中不存在,则返回false,应该如何解决


汪汪一只猫
浏览 598回答 1
1回答

拉丁的传说

const map = {}; arr1.forEach(i => {     map[`${i.name}_${i.value}`] = true; });const isSame = arr2.every(x => map[${x.name}_${x.value}]);console.log('是否全部相同', isSame);试试
随时随地看视频慕课网APP

相关分类

Html5
我要回答