如何比较两个相同对象的数组?

时间:2017-10-16 12:23:24

标签: javascript arrays functional-programming comparison

背景

假设我有两个对象数组。每个数组中的每个对象都应该是唯一的,但有时我们在两个数组中都有相同的对象!

isSameObj(obj1, obj2)

如您所见,每个数组都有一个随机数目的对象。

目的

想象一下,我有一个名为ob1 === ob2的函数,它返回true或false,具体取决于//assuming Array1.length > Array2.length for(const obj1 of Array1){ for(const obj2 of Array2){ if(isSameObj(obj1, obj2)){ //do some work break; } } }

使用此函数,我想知道Array1是否在Array2中重复了一个对象,反之亦然。

为实现这一目标,我首先开始使用传统的for循环。

map

这是我们大多数人习惯的必要方式。

问题

然而,最近我尝试了函数式编程。而且我发现在功能上实现这个小例子非常困难!

我最接近成功的是使用map,但是throw总是遍历整个数组,无论如何我想停止并在找到重复的对象时打破循环。

有些绅士建议只在地图内$('...').data('jqScribble').blank,但这确实是我宁愿避免的解决方案。我想打破一个循环,而不是发出错误信号。

问题

我如何在功能上实现此代码段?

0 个答案:

没有答案