自 FireFox 1.5 起,开始支持 JavaScript 1.6 , 在 JavaScript 1.6 里,javascript 数组增加了几个非常有用的方法:indexOf、lastIndexOf、every、 filter、 forEach、 map、 some,其中前两个可以归为元素定位方法,而后面的几个则可以归为迭代(iterative)方法,本站将发布一个系列文章对这几个新增方法进行介绍。
遗憾的是:这些新方法并非所有浏览器都支持,在这种情况下,我们就需要自己动手了,在这些介绍的文章中,我们同时提供了在不支持这些新特性的浏览器中的实现方法。
Javascript 1.6 数组新增方法介绍之 indexOf() – 示例
语法
var index = array.indexOf(searchElement[, fromIndex]);
参数说明
searchElement: 要搜索的元素
fromIndex : 开始搜索的位置,默认为 0 ,在这样的情况下,将搜索所有的数组元素。如果传入的值大于或等于数组的范围(length),将返回 -1 ,在这样的情况下,搜索操作将不被执行。如果传入的值小于 0 ,仍然会搜索整个数组。
功能说明
比较 searchElement 和数组的每个元素是否绝对一致(===),当有元素符合条件时,返回当前元素的索引。如果没有发现,就直接返回 -1 。
在不支持此属性的浏览器下可以用下面的代码:
<script language="JavaScript" type="text/javascript">
// 说明:Javascript Array 的 indexOf() 方法
// 整理:http://www.CodeBit.cn
// 来源:http://developer.mozilla.org
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;
};
}
</script>