javascript - 如何从javascript中的两个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()函数以及逻辑非运算符 !
来做到这一点:
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);
推荐阅读
- python - RuntimeError:在请求上下文之外工作(Flask)
- hadoop - Hadoop 端口 50070 正在使用 Windows 安装错误
- java - 为什么paintComponent() 会被多次调用?
- python - 我想使用 zipline 和回测,但我正在检索的数据说未定义
- angular - 角度上传进度未正确报告
- string - 字符串的 PowerShell 对象名称是什么?
- python - 如何使用 Gitlab CI 提高基于 python 的无服务器框架项目的部署速度
- bash - 如何为给定的字符串找到一个字符串和不确定的上下行数
- php - 我的 PHP 会话值没有自动更新
- parameters - TestNG 参数在值中声明变量问题