javascript - 如何从javascript中的两个json数组中获取不匹配的对象

标签 javascript arrays json

我有两个这样的 JSON 数组:

var modelType = [
    {   'id' : 3,  'name': 'eR_Beta'},
    {   'id' : 12, 'name': 'eR_Studio'},
    {   'id' : 6,  'name': 'eR_OFF'},
    {   'id' : 9,  'name': 'eR_Schalte'}
];

var data = [
    {id: 12}
    {id: 6}
]

我想将这些数组与“id”作为键进行比较,并将不匹配的对象获取到另一个数组,如下所示:

var output = [
    {   'id' : 3,  'name': 'eR_Beta'},
    {   'id' : 9,  'name': 'eR_Schalte'}
]

最佳答案

可以通过 filter() 做到这一点和 some()功能和logical not operator !:

var modelType = [{
    'id': 3,
    'name': 'eR_Beta'
  },
  {
    'id': 12,
    'name': 'eR_Studio'
  },
  {
    'id': 6,
    'name': 'eR_OFF'
  },
  {
    'id': 9,
    'name': 'eR_Schalte'
  }
];

var data = [{
    id: 12
  },
  {
    id: 6
  }
]

const result = modelType.filter(f =>
  !data.some(d => d.id == f.id)
);
console.log(result);

关于javascript - 如何从javascript中的两个json数组中获取不匹配的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58504910/

相关文章:

javascript - 单击按钮时增加一个数字

javascript - 在javascript中,下面的代码是如何工作的

javascript - knockout 复选框切换 css 类并在单击时切换选中

java - 从锯齿状数组的每一行添加元素

javascript - 如何使用Firebase存储url作为react-native图像的源

ios - Q - iOS - 搜索和使用解析的 JSON 数组的特定部分

Java |通过 FOR 循环返回一个颠倒的数组

有效 JSON 上的 jQuery getJSON 语法错误

json - 如何从 JsonNode 获取键值映射?

json - Swift import 本地文件导入到SwiftyJSON