我正在尝试找到 Breeds 数组和 dogs 数组之间的匹配项。如何返回找到的第一个匹配项。这就是我所拥有的,但似乎不起作用,而且我无法完全找到错误。谢谢
var dogs = ["pug", "husky", "hound", "poodle"];
function findTheBreed(dogs) {
var breeds = ["terrier", "mix", "lab", "hound"];
for(let i = 0; i < dogs.length; i++) {
for (let b = 0; b < breeds.length; b++) {
if(dogs[i] === breeds[b]) {
return breeds[b]
} else {
return "no match"
}
}
}
}
最佳答案
您在第一次不匹配时返回 false,而您应该继续迭代。
将返回“不匹配”
移至迭代完所有内容之后。
您也可以在此处使用indexOf
:
function findTheBreed(dogs) {
var breeds = ["terrier", "mix", "lab", "hound"];
for(let i = 0; i < dogs.length; i++) {
if(breeds.indexOf(dogs[i]) != -1){
return dogs[i];
}
}
return "no match";
}
另一种(我认为最好的)路线是使用 Array.filter功能并检索整个匹配数组。
var breeds = ["terrier", "mix", "lab", "hound", "snickerdoodle"];
var filtered = breeds.filter(
function (elem) {
return dogs.indexOf(elem) != -1
}
);
return filtered;
关于javascript - 比较两个数组时找到第一个匹配值javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43985345/