我有两个包含数值的整型数组。我想查看两个列表并检查列表之间的共同性(或缺少)。即我想循环访问数组并找到出现在这两个列表中的项目,而在一个单独的函数中,我想通过数组找到第一个项目,而不是第二个项目。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