如何在javascript数组中搜索值?

How to search for a value in an Array of JavaScript?

本问题已经有最佳答案,请猛点这里访问。

我正在学习javascript,遇到了这个问题。我想使用document.formName.elementName.value捕获一个输入值,并将该值与数组对象的实例进行比较。如果该值存在,它将发出警报!.


可以使用indexof()函数,只需执行以下操作:array.indexOf("string")如果找不到项目,它将返回-1,否则只返回位置。这是W3学校的链接。


您可以在JavaScript数组中添加便利方法

1
2
3
4
5
6
7
8
9
Array.prototype.includes = function(element) {
    var found = false;
    for (var i = 0; i < this.length; i++) {
        if (this[i] == element)  {
            found = true;
        }
    }
    return found;
}

然后,您可以使用下面的代码来获得一些语法上的优势。

1
2
3
4
var myArray = [0,1,"hello","world"];

console.log(myArray.includes("hello")); //prints true
console.log(myArray.includes(10)); //prints false


使用indexOf

1
2
3
function search(arr,obj) {
    return (arr.indexOf(obj) != -1);
}

测试用例:

1
2
search(["a","b"],"a"); // true
search(["a","b"],"c"); //false

我想这已经被问了上千次了:

1
2
3
if(myFancyArray.indexOf(document.formName.elementName.value) !== -1){
   alert("You did something wrong!");
}

小心,因为旧版本的IE不知道indexOf。(但谁需要IE?)