我有两个包含数字值的整数数组。我想查看这两个列表之间共同性(或缺乏共同性)。也就是说,我想遍历数组并找到那些同时出现在两个列表中的项目,而在另一个函数中,我想遍历这些数组并找到第一个列表中存在但第二个列表中不存在的项目。
显然的方法是使用嵌套的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
}
但是,考虑到这些列表可能包含数百或数千条记录,这需要进行大量的迭代和处理器运算。
因此,我想知道是否有一种更有效的执行上述代码的方法?不仅是实际搜索,而且还有比整数数组更高效的存储值的容器,或者不使用嵌套的for循环来遍历和比较内容的其他解决方案。
你有更有效或更优雅的解决方案吗?