我有两个包含数值的整数数组.我想查看两个列表并检查列表之间的共性(或缺少).即我想迭代数组并找到出现在两个列表中的那些项目,而在一个单独的函数中,我想通过数组并找到第一个而不是第二个中的项目.
这样做的显而易见的方法是嵌套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
}
Run Code Online (Sandbox Code Playgroud)
但鉴于这些列表可能包含数百或数千条记录,这相当于一点点迭代和处理器密集.因此,我想知道是否有更有效的方法来执行上述代码?不仅仅是实际的搜索,还有比Integer数组更有效的东西作为值的容器,或者只是不使用嵌套的for循环来遍历和比较内容.
对更有效或更优雅的解决方案的想法?