JavaScript数组中indexOf的问题

时间:2009-07-01 20:35:43

标签: javascript

var allProductIDs = [5410, 8362, 6638, 6758, 7795, 5775, 1004, 1008, 1013, 1014, 1015, 1072, 1076, 1086, 1111, 1112, 1140];

lastProductID = 6758;

由于某种原因我得到-1或者我猜这相当于找不到这个:

alert(allProductIDs[allProductIDs.indexOf(lastProductID));

我无法弄清楚为什么会这样,因为它应该找到6758而那将是索引3.如果它是索引3那么我应该回到6758我想。

3 个答案:

答案 0 :(得分:5)

.indexOf()用于字符串,而不是数组。

使用常规Javascript,您必须循环遍历数组,直到找到匹配项,或使用jQuery的inArray()函数。

jQuery inArray()

答案 1 :(得分:3)

var allProductIDs = [5410, 8362, 6638, 6758, 7795, 5775, 1004, 1008, 1013, 1014, 1015, 1072, 1076, 1086, 1111, 1112, 1140];

lastProductID = 6758;

for (i in allProductIDs)
{
    if (allProductIDs[i] == lastProductID) {
        alert(allProductIDs[i] + " is at index " + i);
        break;
    }
}

i = $.inArray(lastProductID, allProductIDs)
alert(allProductIDs[i] + " is at index " + i);

答案 2 :(得分:0)

检查语法。你错过了一个结束括号..']'