【发布时间】:2013-12-27 16:17:16
【问题描述】:
我想确定一个数组是否至少有一个元素也包含在另一个数组中。
即时:
arr0 = [0]
arr1 = [1,2,3]
arr2 = [2,3,4]
arr3 = [1,5,3]
arrCompare(arr0, arr1) // false
arrCompare(arr1, arr2) // true
arrCompare(arr1, arr3) // true
到目前为止,我有:
array_has_one_common_element = (a, b) ->
breakLoop1 = false
for num1 in a
for num2 in b
if num2 is num1
breakLoop1 = true; break
break if breakLoop1
return breakLoop1
因为这个函数将在服务器端与 nodejs 一起使用,并且可能必须处理大数组,所以我想知道如何将它重写为异步(使用 async 库)。或者它是否足够高效?
【问题讨论】:
-
是否可以将数组转换为 HashSet(映射)并相交?如果交集为空 - 数组没有共同项,否则交集是共同项。当交集为 O(n) 时,组合循环为 O(n^2)
标签: arrays node.js asynchronous coffeescript