【发布时间】:2022-09-27 16:21:04
【问题描述】:
有没有办法判断一个对象数组是否与另一个对象数组有任何公共元素,以及该对象相交是什么? (如 Contains 函数)。在下面的示例中,对象数组 1 中的 ProductId3 也包含在对象数组 2 中。
我正在考虑使用双 for 循环。但是,是否有更有效/最佳的方式,或者速记 ecma 或 lodash 函数?
array1.forEach(arr1 => {
array2.forEach(arr2 => {
if (arr1.productId === arr2.productId &&
arr1.productName === arr2.productName ...
检查所有对象成员,而不仅仅是 ProductId
对象数组 1:
[
{
ProductId: 50,
ProductName: \'Test1\',
Location: 77,
Supplier: 11,
Quantity: 33
},
{
ProductId: 3,
ProductName: \'GHI\',
Location: 1,
Supplier: 4,
Quantity: 25
}
]
对象数组 2:
[
{
ProductId: 1,
ProductName: \'ABC\',
Location: 3,
Supplier: 4,
Quantity: 52
},
{
ProductId: 2,
ProductName: \'DEF\',
Location: 1,
Supplier: 2,
Quantity: 87
},
{
ProductId: 3,
ProductName: \'GHI\',
Location: 1,
Supplier: 4,
Quantity: 25
},
{
ProductId: 4,
ProductName: \'XYZ\',
Location: 5,
Supplier: 6,
Quantity: 17
}
]
-
你的问题有点太笼统了。你有没有真正面临的问题?您的问题有很多“有效”的答案。不要预先优化。
-
我们正在对我们的 web ui 验证进行重复检查 cc @RuanMendes 我编写了一个解决方案,但是检查是否有更优化/高效/速记的方法,谢谢
-
我们正在检查所有对象成员 cc @RuanMendes
-
我有一些问题:问题 1.集合之一是静态的(不会改变吗?)?如果两者都是动态的,那么除了两个嵌套循环复杂度 O(N*M) 之外,我看不到其他方法。这些的实现可能会因代码风格而异。问题2这些数组的预期是什么?
标签: javascript typescript