【发布时间】:2017-02-25 20:53:58
【问题描述】:
我正在编写一个 javascript sn-p 来搜索两个数组之间的匹配项。我知道如何粗暴地搜索它(数组需要一个数字输入,搜索其他数组的每个值以查看它们是否匹配一遍又一遍),但它的效率非常低。如果有人知道一种在两个数组之间搜索共同值的方法,以便尽可能缩短时间,请帮助我。
var 1 = ["bob", "Sophie"];
var 2 = ["Sherry", "Gerard", "Joseph"];
for(var i; i <= 1.length; i++){
switch(1[i]){
case 1[i] === 2[1]:
console.log("They match!");
break;
case 1[i] === 2[2]:
console.log("They match!");
break;
case 1[i] === 2[3]:
console.log("They match!");
break;
case default:
console.log("No matches found.");
}
}
}
PS 不要介意语法错误,这是代码的“草稿”。我只是为了让你明白我的意思。
【问题讨论】:
-
发布一个你尝试过的例子。
-
阵列有多大?本能地说,对数组进行排序然后搜索它会是最快的(对于较大的数组)。
-
@IvanModric 数组将非常大,平均将存储大约 200 个值。如何对数组进行排序?
-
你可以用谷歌搜索“快速排序”。这似乎是一个不错的实现,但我现在在手机上,所以我无法正确编辑评论或检查代码:gist.github.com/paullewis/1981455
标签: javascript arrays