当我运行此函数时,我得到语法错误意外编号
var numberList = [1, 5, 2, 20, 7, 90, 3];
function inArray( numberList, 90 ) {
for (var i = 0; i < numberList.length; i++) {
if(numberlist[i] === 90){
return true;
} else {
return false;
}
}
}
inArray();
答案 0 :(得分:2)
您只需要在循环中返回true
(如果找到),因为如果找不到则需要访问所有项目。
然后我建议使用数字参数来搜索。
function inArray(array, value) {
for (var i = 0; i < array.length; i++) {
if (array[i] === value) {
return true;
}
}
return false;
}
var numberList = [1, 5, 2, 20, 7, 90, 3];
console.log(inArray(numberList, 90));
&#13;
答案 1 :(得分:1)
我假设您正在实施此功能以了解JavaScript。否则你只需使用像numberList.includes(90)
这样的东西就可以了。
定义函数时,发送给函数的参数不是文字值(如90
)。相反,它们是在函数范围内有效的变量:
function inArray( arr, number ) {
for (var i = 0; i < arr.length; i++) {
if(arr[i] === number){
return true;
}
}
return false;
}
然后,当您调用函数时,您传递实际值:
inArray(numberList, 90);
答案 2 :(得分:0)
您可以使用array.indexOf(element)来检查数组中是否包含元素。
如果元素不在数组中,则返回-1,或者元素所在的数组的位置。
基本上如果它返回&gt; = 0,那么数组包含元素。
=== extra ====
除了Davin Tryon的回答,如果您在理解功能参数方面遇到困难,我建议您搜索一下争论和参数之间的差异。
答案 3 :(得分:0)
您在方法声明和方法调用之间感到困惑。 定义函数时,您声明函数所需的参数,并且可以使用您想要的任何名称,因为该名称只是函数体内对引用函数时将传递的参数的引用。
所以在你的情况下:
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);
然后,当您执行检查时,您可以直接返回检查而不是使用if并返回true false。
此外,您的脚本仅检查第一个数字,然后立即返回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));
&#13;
我想这只是一个实验,因为在数组中查找元素JavaScript已经提供了几种方法:)