array.indexOf只是-1

时间:2015-05-28 11:39:34

标签: javascript arrays indexof

得到了那段代码:

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

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

小提琴:http://jsfiddle.net/okg9g4tt/

9 个答案:

答案 0 :(得分:5)

有一种误解。

indexOf不会将元素置于索引0,它将

  

返回第一个索引,在该索引中,给定元素可以找到   数组,如果不存在,则返回-1。

如果你想要索引为0的元素,你应该只做itemGrid[0]

答案 1 :(得分:3)

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

  

indexOf()方法返回可在数组中找到给定元素的第一个索引,如果不存在则返回-1。

要返回索引0处的值,请使用itemGrid[0]

重要提示:

IE8及以下版本不支持

.indexOf(),请注意您是否计划支持这些浏览器。

答案 2 :(得分:2)

0不是该数组的元素。 所以它的索引返回-1;

可能你想拥有   itemGrid [0] 将返回3

答案 3 :(得分:1)

应该是:

itemGrid[0]

indexOf(0)会返回数组中值0的位置,但数组中没有0。

答案 4 :(得分:1)

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

注意: indexOf会找到元素的位置(如果找到),因此当您执行itemGrid.indexOf(0);时,表示您正在寻找元素的位置< strong>'0',这在您的数组中不存在,因此返回-1

答案 5 :(得分:1)

  

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

class SomeOtherController < ApplicationController
  before_filter :get_offer, :only => [:action_c, :action_d, :action_e]
  before_filter ::validate_api_v2, :only => [:action_c, :action_d]
end

答案 6 :(得分:0)

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

而array [n]返回数组中第n个位置的值

答案 7 :(得分:0)

数组中不存在“0”,因此它将返回-1。

答案 8 :(得分:0)

  

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

搜索指定的对象,并在一维数组中返回其第一次出现的索引。

您的示例尝试查找返回-1的第一个索引0,表示找不到0&#39;

要返回数组中的第一个索引,请使用索引器ItemGrid[0]