如何检查数组Javascript中是否存在字符串或数字

时间:2014-12-06 18:27:16

标签: javascript jquery arrays

我有一个函数,要求用户写下他们最喜欢的动物蚂蚁,然后将它存储在一个名为animals的数组中。当用户执行该函数时,我想检查他想要的动物是否在数组内,如果是,则显示动物的索引(例如:你输入的动物已经在数组中。它的索引号是......)。有什么想法吗?

var animals=[]
function anim(){
var ani=prompt("Give me an animal you like");
animals.push(ani);

}

4 个答案:

答案 0 :(得分:3)

您可以遍历数组并使用正则表达式来获得准确的结果,而不是输入大小写

 function searchArr(arr, q){      
      for (i = 0; i < arr.length; i++){
        patt = new RegExp(q,"i");
        if (patt.test(arr[i])) return i;
      }
      return false;
    }

测试代码:

 animals = new Array('dog', 'cat', 'camel', 'deer');
    q = prompt("Enter Animal Name");
    r = searchArr(animals,q);
    alert(r)
    if (r || r ===0){
      alert("Animal found and its index " + r)
    }
    else{
      alert("Not found")
    }

演示:http://jsbin.com/jolaqiduka/1/

答案 1 :(得分:2)

您可以使用indexOf()找出数组是否在数组中。

例如:animals.indexOf('dog');

这将返回字符串&#39; dog&#39;的索引。如果它不存在,它将返回值-1。

答案 2 :(得分:2)

var animals= new Array('dog');
var ani=prompt("Give me an animal you like");
if(animals.indexOf(ani) >= 0 ){
    alert(animals.indexOf(ani));


}else{
   animals.push(ani);
}

JsFillde Demo

答案 3 :(得分:1)

就这样

var animals=[]

function anim() {
   var ani = prompt("Give me an animal you like");

   // The function returns a position of an input element (in array) begins from the 0
   // or -1 if the element is not exists in the array
   if (animals.indexOf(ani) > -1)
       alert('Already in');
   else
       animals.push(ani);
}

下一个小提琴可能会有所帮助:http://jsfiddle.net/8g5gpqx2/