假设我有两个对象数组。每个数组中的每个对象都应该是唯一的,但有时我们在两个数组中都有相同的对象!
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
,但这确实是我宁愿避免的解决方案。我想打破一个循环,而不是发出错误信号。
我如何在功能上实现此代码段?