【发布时间】:2020-06-20 03:53:11
【问题描述】:
我想比较两个巨大的数组,我正在分批读取这两个数组(每次从每个数组中获取 10 个对象)。完成读取这两个数组后,我想要以下数据(两个巨大数组之间的交集 - 对象仅存在于第一个数组中 - 对象仅存在于第二个数组中)。这样做的最佳做法是什么?
小规模示例:
让 arr1 = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7];
让 arr2 = [ obj7, obj2, obj5, obj1, obj9, obj8];
那我就分批读取这两个数组(每次两个元素):
第一个循环
->obj2 是相互的
->obj1 只存在于 arr1 中
->obj7 只存在于 arr2 中
这里的问题,直到我完成对整个数组的循环以获得正确的结果,这不是最终结果:
相互的对象是obj1,obj2,obj5,obj7
arr1 中的对象只有 obj3,obj4,obj6
arr2 中的对象只有 obj8,obj9
注意:由于数组太大,我必须批量读取。
【问题讨论】:
-
所以换句话说你想要交集(你不想要只在其中一个中的对象的事实已经在交集的定义中=“对象在两个集")
-
什么样的对象?
-
普通 JSON 对象
-
查看与 lodash stackoverflow.com/questions/29320817/…类似的方法
-
不适合批量读取数组
标签: javascript arrays algorithm data-structures