【发布时间】:2013-01-17 00:30:00
【问题描述】:
我有 2 个数组,其中包含对象,例如:
[{"Start": 1, "End": 2}, {"Start": 4, "End": 9}, {"Start": 12, "End": 16}, ... ]
我想在删除重复项的同时合并 2 个数组。目前,我正在做以下事情:
array1.concat(array2);
然后我正在做一个嵌套的$.each 循环,但是随着我的数组越来越大,这需要O(n^2) 时间来执行并且不可扩展。
我认为有一种更快的方法可以做到这一点,但是,我发现的所有示例都使用字符串或整数。
有什么推荐的算法或方法可以加快这个速度吗?
【问题讨论】:
-
它们都是有序数组吗?
-
它们不是有序数组,但如果有办法通过使用 2 个 for 循环和每个数组的递增索引来加快速度,我可以对它们进行排序。
-
随着数组变大,不使用
$.each可以获得更好的性能。 -
如果顺序无关紧要,你最好使用对象
{}然后你可以检查键,这只是o(n)。
标签: javascript jquery algorithm duplicates