无涯教程-Javascript - indexOf()函数

80 阅读1分钟

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

indexOf() - 语法

array.indexOf(searchElement[, fromIndex]);
  • searchElement   -   要在数组中定位的元素。

  • FromIndex         -  开始搜索的索引。默认值为0,即将搜索整个数组。如果索引大于或等于数组的长度,则返回-1。

indexOf() - 返回值

返回找到的元素的索引。

indexOf() - 相容性

此方法是ECMA-262标准的JavaScript扩展;因此,它可能不存在于该标准的其他实现中。要使其工作,您需要在脚本顶部添加以下代码。

if (!Array.prototype.indexOf) {
   Array.prototype.indexOf=function(elt /*, from*/) {
      var len=this.length;
  </span><span class="kwd">var</span><span class="pln"> </span><span class="kwd">from</span><span class="pun">=</span><span class="typ">Number</span><span class="pun">(</span><span class="pln">arguments</span><span class="pun">[</span><span class="lit">1</span><span class="pun">])</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
  </span><span class="kwd">from</span><span class="pun">=(</span><span class="kwd">from</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln">
  </span><span class="pun">?</span><span class="pln"> </span><span class="typ">Math</span><span class="pun">.</span><span class="pln">ceil</span><span class="pun">(</span><span class="kwd">from</span><span class="pun">)</span><span class="pln">
  </span><span class="pun">:</span><span class="pln"> </span><span class="typ">Math</span><span class="pun">.</span><span class="pln">floor</span><span class="pun">(</span><span class="kwd">from</span><span class="pun">);</span><span class="pln">
  
  </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">from</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">from</span><span class="pln"> </span><span class="pun">+=</span><span class="pln"> len</span><span class="pun">;</span><span class="pln">
  
  </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(;</span><span class="pln"> </span><span class="kwd">from</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> len</span><span class="pun">;</span><span class="pln"> </span><span class="kwd">from</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
     </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">from</span><span class="pln"> </span><span class="kwd">in</span><span class="pln"> </span><span class="kwd">this</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">amp
     </span><span class="kwd">this</span><span class="pun">[</span><span class="kwd">from</span><span class="pun">]</span><span class="pln"> </span><span class="pun">===</span><span class="pln"> elt</span><span class="pun">)</span><span class="pln">
     </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">from</span><span class="pun">;</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">
  </span><span class="kwd">return</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">;</span><span class="pln">

}; }

indexOf() - 示例

<html>
   <head>
      <title>JavaScript Array indexOf Method</title>
   </head>
   
   <body>   
      <script type="text/javascript">
         if (!Array.prototype.indexOf) {
            Array.prototype.indexOf=function(elt /*, from*/) {
               var len=this.length;
               
               var from=Number(arguments[1]) || 0;
               from=(from < 0)
               ? Math.ceil(from)
               : Math.floor(from);
               
               if (from < 0)
               from += len;
               
               for (; from < len; from++) {
                  if (from in this &&
                  this[from] === elt)
                  return from;
               }
               return -1;
            };
         }
         var index=[12, 5, 8, 130, 44].indexOf(8);
         document.write("index is : " + index ); 
         
         var index=[12, 5, 8, 130, 44].indexOf(13);
         document.write("<br />index is : " + index ); 
      </script>      
   </body>
</html>

运行上面代码输出

index is : 2
index is : -1 

参考链接

www.learnfk.com/javascript/…