javascript - 如何通过在javascript中比较它们来仅从数组中获取特定元素?
问题描述
我有两个数组。第二个数组 B 有一些与数组 A 相同的元素。现在在比较数组之后,arrayA 应该只有那些不在 arrayB 中的值。请告诉我最好的方法。
let arrayA = [{ "displayName": "John" }, { "displayName": "Sandra" },{ "displayName": "Peter" }]
let arrayB = [{ "name": "Bobby" }, { "name": "John" }, { "name": "Sandra" }]
arrayA.forEach(function(cust, index) {
arrayB.forEach(function(comp) {
if (comp.name == cust.displayName) {
delete arrayA[index]
}
})
})
console.log("Final"+JSON.stringify(arrayA))
输出 -> 最终[null,null,{"displayName":"Peter"}]
解决方案
过滤并仅保留其他数组中不存在的那些
let arrayA = [{ "displayName": "John" }, { "displayName": "Sandra" },{ "displayName": "Peter" }]
let arrayB = [{ "name": "Bobby" }, { "name": "John" }, { "name": "Sandra" }]
arrayA = arrayA.filter(a =>
!arrayB.find(b => a.displayName === b.name)
);
console.log("Final"+JSON.stringify(arrayA))
推荐阅读
- python - 来自不同目录python的测试文件中的模拟方法
- c# - C# 防止条目,因此您不会得到“索引超出数组范围”
- c++ - ContinueDebugEvent 导致我的调试器崩溃,但 x64dbg 没有
- c - fgets 如何处理回车键?
- php - SWIG & PHP 7 - 如何将二进制数据从 C 传递到 PHP(非零终止)?
- database - 为什么我的 FK 列和引用的列应该具有相同的类型?
- reporting-services - SSRS Excel 提取上的空列
- sql-server - 使用 DB2 数据在 DB1 上执行存储过程
- javascript - 如何将 ArrayBuffer 从 SubtleCrypto.sign 转换为字符串
- asp.net-mvc - 无法使用codefirst在多对多关系中保存联合表中的数据