我有一个函数,要求用户写下他们最喜欢的动物蚂蚁,然后将它存储在一个名为animals的数组中。当用户执行该函数时,我想检查他想要的动物是否在数组内,如果是,则显示动物的索引(例如:你输入的动物已经在数组中。它的索引号是......)。有什么想法吗?
var animals=[]
function anim(){
var ani=prompt("Give me an animal you like");
animals.push(ani);
}
答案 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")
}
答案 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);
}
答案 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/