你得到的方法聲明和方法調用之間的混淆。 當你定義一個函數時,你聲明瞭函數期望的參數,並且你可以在那裏使用任何你想要的名字,因爲這個名字只是函數體內的一個引用,當你調用該函數時,它將傳遞給你的參數。
所以你的情況:
var numberList = [1, 5, 2, 20, 7, 90, 3];
// function declaration
function inArray(myList, numberToFind) {
for (var i = 0; i < myList.length; i++) {
if(myList[i] === numberToFind){
return true;
} else {
return false;
}
}
}
// function invocation
inArray(numberList, 90);
然後,當你正在執行檢查,可以直接返回,而不是使用,如果和返回true假支票。
而且,你的腳本只檢查的第一個數字,然後立即返回true或false。
所以你的函數應該是這樣的:
function inArray(myList, numberToFind) {
for (var i = 0; i < myList.length; i++) {
if(myList[i] === numberToFind){
return true;
}
}
return false;
}
var array = [1, 3, 5, 6];
console.log(inArray(array, 5));
我想這只是一個實驗,因爲一個陣列內找到一個元素的JavaScript已經提供了幾個方法:)
'numberList.includes(90)'似乎更容易:) –
'var 90 = 80'給我同樣的錯誤:( - (你需要聲明參數並將它們傳遞給函數BTW) –
對不起w到javascript,你可以更具體的如何看起來和工作在代碼塊? –