从数组中获取元素位置

时间:2014-11-26 13:19:25

标签: javascript jquery arrays

我从输入中获得了一个值,并且一个数组的长度基于输入值...所以例如我在输入中按下了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!

3 个答案:

答案 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。