這是我對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