我从输入中获得了一个值,并且一个数组的长度基于输入值...所以例如我在输入中按下了3并且我输入了var = 3和var sir = [ 0,1,2] ...当我试图找到sir.indefOf(输入)时我错了?
代码:
function findPositionInArray(objectToFind, array) {
for(var i = 0; i < array.length; i++) {
if (objectToFind == array[i]){
return array[i].indexOf(objectToFind);
}else{
return 0;
}
}
}
console.log(findPositionInArray(input, sir));
一直返回0
,即使在数组中输入值存在,我在一个包含50个元素的数组中测试它,从0到49寻找5!
答案 0 :(得分:3)
jQuery为此目的提供了$.inArray
帮助程序:
var arr = [1,2,3];
console.log($.inArray(1, arr)); // = 0 (the index of '1' in the array)
答案 1 :(得分:1)
您的代码错误:它会在第一个元素后停止,因为您返回0。
应该是:
function findPositionInArray(objectToFind, array) {
var found = false;
for(var i = 0; i < array.length; i++) {
if(objectToFind == array[i]) found = i;
}
return found;
}
但你应该使用jQuery.inArray()或JS indexOf ......
答案 2 :(得分:0)
或者,纯JavaScript解决方案是arr.indexOf(element)
,它将返回数组的索引,如果该元素不存在则返回-1。