这是我对SO的第一个问题。我有一个任务,我应该创建一个函数,它有两个参数 - 第一个是字符串数组,第二个是可能在数组中匹配的字符串。为什么我的for循环返回正确的答案,但我的forEach不?
我有两个变体的函数:一个使用“for”循环,另一个使用.forEach()方法。 for循环根据数组中是否存在第二个参数,准确地返回“true”/“false”。 forEach总是返回“false”。
有人可以解释为什么吗?下面的代码:
.forEach()版本:
function insideArray (array, word) {
var value;
array.forEach(function(each) {
if(each === word) {
value = "true";
return value;
}
else {
value = "false";
}
});
return value;
}
for循环版本:
function insideArray (array, word) {
var value;
for(var i = 0; i < array.length; i++) {
if(array[i] === word) {
value = "true";
return value;
}
else {
value = "false";
}
}
return value;
}
甲样本阵列:
var heroArray = [ "spiderman", "wolverine", "batman", "greenArrow", "boosterGold" ];
测试.forEach():
insideArray(heroArray, "spiderman");
"false"
测试for循环:
insideArray(heroArray, "spiderman");
"true"
感谢您的帮助提前!
尝试走过你的代码调试器,一行行,看看它做什么。 – 2017-08-06 22:31:27