indexOf()

优质
小牛编辑
131浏览
2023-12-01

描述 (Description)

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

语法 (Syntax)

其语法如下 -

array.indexOf(searchElement[, fromIndex]);

参数细节 (Parameter Details)

  • searchElement - 要在数组中定位的元素。

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

返回值 (Return Value)

返回找到的元素的索引。

兼容性 (Compatibility)

此方法是ECMA-262标准的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;
   };
}

例子 (Example)

请尝试以下示例。

<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>

输出 (Output)

index is : 2
index is : -1