编写一个javascript函数来检查元素是否在数组中

时间:2017-05-25 16:01:56

标签: javascript arrays node.js function

当我运行此函数时,我得到语法错误意外编号

    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();

4 个答案:

答案 0 :(得分:2)

您只需要在循环中返回true(如果找到),因为如果找不到则需要访问所有项目。

然后我建议使用数字参数来搜索。

&#13;
&#13;
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;
&#13;
&#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。

所以你的功能应该是这样的:

&#13;
&#13;
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;
&#13;
&#13;

我想这只是一个实验,因为在数组中查找元素JavaScript已经提供了几种方法:)