javascript - 如何比较两个数组中的数据并在javascript中返回不匹配的数组?
问题描述
这是我的问题陈述。
我有两个数组
assignedArr = [{ id: 'abc1' }, { id: 'abc2' }, { id: 'abc3' }];
unAssignedArr = [{ id: 'abc1' }, { id: 'abc2' }, { id: 'abc3'}, { id: 'abc4' }];
我必须将 assingedArr 与 unAssignedArr 进行比较,并返回不匹配的数组项。
例如,在上面的例子中,
结果应该是
newArr = [{ id: 'abc4' }];
像苏...
任何建议都会非常有用
解决方案
您可以使用Array.prototype.filter
带有Array.prototype.some
方法的数组来获得结果。
const assignedArr = [{ id: 'abc1' }, { id: 'abc2' }, { id: 'abc3' }];
const unAssignedArr = [
{ id: 'abc1' },
{ id: 'abc2' },
{ id: 'abc3' },
{ id: 'abc4' },
];
const ret = [
...unAssignedArr.filter((x) => !assignedArr.some((y) => x.id === y.id)),
...assignedArr.filter((x) => !unAssignedArr.some((y) => x.id === y.id)),
];
console.log(ret);
推荐阅读
- java - 如何指定一个方法应该覆盖它的默认接口?
- java - 从非 Fragment/Activity 类调用 registerForActivityResult
- java - 在 Spring Boot 中进行单元测试时使用 Entity Manager 检查创建的查询
- c - C 中的 chroot 不起作用:不允许 EPERM 操作
- assembly - 如何使用 Video MEM fasm 组件
- vscode-extensions - VSCode 扩展 API:自动完成文档/细节突出显示
- javascript - 在 qweb 报告中应用简单的 javascript
- typescript - 在多个函数参数上定义打字稿守卫
- python - 在 PySpark 中选择具有最小空字段值的记录
- rest - 如何创建 Airtable api 速率限制?