我有兩個包含數值的整型數組。我想查看兩個列表並檢查列表之間的共同性(或缺少)。即我想循環訪問數組並找到出現在這兩個列表中的項目,而在一個單獨的函數中,我想通過數組找到第一個項目,而不是第二個項目。Javascript:有效地比較兩個整數數組
這樣做的最顯而易見的方法是嵌套的for循環:
var containedInFirst = false;
for (var primaryID = 0; primaryID < PrimaryArray.length; primaryID++) {
containedInFirst = false;
for (var secondaryID = 0; secondaryID < SecondaryArray.length; secondaryID++) {
if (PrimaryArray [primaryID] === SecondaryArray[secondaryID]) {
containedInFirst = true;
break;
}
}
//Do some more stuff based on the value of containedInFirst here
}
但考慮到列表可以包含的記錄成百上千,這是相當多的itteration和處理器密集型的。 因此,我想知道是否有更高效的方式來執行上述代碼?不僅僅是實際的搜索,而是比Integer數組更有效的值作爲容器的值,或者不使用嵌套for循環遍歷和比較內容。
有關更高效或優雅解決方案的任何想法?
只是一個建議,爲「優雅」的一部分=)運行任務的webworker如果你的瀏覽器支持他們 – 2010-11-16 11:57:41
你有維持秩序?數組是否已排序?你在數組中有大整數嗎? – Lauri 2010-11-16 12:56:53