array.indexOf 只是 -1

array.indexOf is just -1

得到代码:

var itemGrid = [3,4,2,11,1,3,5,8,6];
var a = itemGrid.indexOf(0);

a 是每次 -1。应该是3。我做错了什么?

fiddle: http://jsfiddle.net/okg9g4tt/

这是因为 0 不是初始数组中的值。 然后函数returns -1。 (see docs)

The indexOf() method returns the first index at which a given element can be found in the array, or -1 if it is not present.

要return索引0处的值,使用itemGrid[0]

重要提示:

.indexOf() IE8 及以下版本不支持,如果您打算支持这些浏览器,请注意。

有误会。

indexOf 不会获取 索引 0 处的元素,它会

return the first index at which a given element can be found in the array, or -1 if it is not present.

如果你想要索引 0 处的元素,你应该简单地做 itemGrid[0]

应该是:

itemGrid[0]

indexOf(0) 会 return 数组中值 0 的 position,但是没有 0在数组中。

indexOf returns 找到的元素的索引。这里返回 -1,因为在您的数组中找不到 0。

注意:如果找到, indexOf 将为您提供元素的位置,因此当您执行 itemGrid.indexOf(0); 时,这意味着您正在寻找数组中不存在的元素 '0' 的位置,因此它返回 -1

array.indexOf(n) returns n 在数组中的位置。如果 n 不在数组中,则 returns -1。在这种情况下 0 不存在,所以 -1.

while array[n] returns 值出现在数组中的第 n 个位置

a is everytime -1. It should be 3. What did I do wrong?

var itemGrid = [3,4,2,11,1,3,5,8,6];
var a = itemGrid[0];   // 3

0 不是该数组的元素。 所以它的索引被 returned 为 -1;

可能你想要 itemGrid[0] 这将 return 3

数组中不存在“0”,因此它将 return -1.

IndexOf (IndexOf<T>(T[], T))

搜索指定的对象和return它在一维数组中第一次出现的索引。

您的示例试图找到第一个索引 0 returning -1,这意味着找不到 0。

到 return 数组中的第一个索引使用索引器 ItemGrid[0]