JavaScript1.6新特性系列之 indexOf
Summary
Returns the first index at which a given element can be found in the array,or -1 if it is not present.
Implemented in | JavaScript 1.6 |
ECMAScript Edition | ECMAScript 5th Edition |
语法:
array.indexOf(searchElement[, fromIndex])
searchElement
Element to locate in the array. (所要在array定位的element)fromIndexThe index at which to begin the search. Defaults to 0, i.e. the whole array will be searched. If the index is greater than or equal to the length of the array, -1 is returned, i.e. the array will not be searched. If negative, it is taken as the offset from the end of the array. Note that even when the index is negative, the array is still searched from front to back. If the calculated index is less than 0, the whole array will be searched.(开始查找的index,默认是0,会查找整个array.如果index大于或等于数组的长度,会返回-1,数组不会被查找。如果是负数,会按数组的偏移量(其实就是与数组的长度相加)进行查找 。注意即使index是负数,这个数组也会从开始查找到最后。如果计算后的Index小于0,整个数组将被查找)
- if (!Array.prototype.indexOf) {
- Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
- "use strict";
- if (this === void 0 || this === null) {
- throw new TypeError();
- }
- var t = Object(this);
- var len = t.length >>> 0;
- if (len === 0) {
- return -1;
- }
- var n = 0;
- if (arguments.length > 0) {
- n = Number(arguments[1]);
- if (n !== n) { // shortcut for verifying if it's NaN
- n = 0;
- } else if (n !== 0 && n !== Infinity && n !== -Infinity) {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- }
- if (n >= len) {
- return -1;
- }
- var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
- for (; k < len; k++) {
- if (k in t && t[k] === searchElement) {
- return k;
- }
- }
- return -1;
- }
- }
- var array = [2, 5, 9];
- var index = array.indexOf(2);
- // index is 0
- index = array.indexOf(7);
- // index is -1
浏览器兼容性:
相关推荐
Prototype为数组对象添加了许多实用方法,例如`each()`用于遍历数组,`indexOf()`和`lastIndexOf()`用于查找元素索引,`map()`和`collect()`用于创建新数组,`without()`用于移除包含特定元素的副本,`any()`和`all...
3. **Array 类扩展**:添加了 map、each、collect、indexOf 等数组操作方法,使得数组操作更加便捷。 4. **String 类扩展**:增加了诸如 camelize、hyphenate、capitalize 等字符串处理方法,方便进行格式化和转换...
2. **数组操作**:Prototype为Array对象增加了许多实用方法,如`each()`用于遍历数组,`indexOf()`和`include()`用于查找元素,`map()`和`collect()`用于转换数组,`any()`和`all()`用于检查条件。 3. **字符串处理...
3.2.html indexOf()函数与lastIndexOf()函数。 3.3.html 截取字符串的子串。 3.4.html 用户自定义的实现slice函数功能的函数。 3.5.html 删除数组最后项的方法。 3.6.html 向数组头添加一个项。...
在日常开发过程中,JavaScript作为前端开发的核心语言之一,其灵活多变的特性让开发者能够实现各种复杂的功能。对于新手乃至中级开发者而言,掌握一些实用的小技巧可以极大提高编码效率与代码质量。本文将详细介绍几...
随着技术的发展,JavaScript经历了多个版本的更新,每个版本都引入了新的特性和功能。在给定的代码中,主要涉及到的是通过检测浏览器对特定JavaScript方法的支持来判断其JavaScript引擎的版本。 首先,让我们分析...
**注意**:`forEach`方法与JavaScript 1.6中的`Array.forEach()`有一个显著的不同之处,那就是它会遍历稀疏数组,并将稀疏数组中的空位传递给回调函数。而JavaScript 1.6的`Array.forEach()`则会跳过稀疏数组中的...
- **新特性**:加强了对JavaScript 1.6和WHATWG 1.0标准的支持,提高了兼容性和稳定性。 - **应用场景**:适用于需要遵循最新Web标准的应用场景,确保应用在不同浏览器中的表现一致性。 #### 三、实用方法 ##### 1...
除此之外,Underscore还提供了其他集合处理方法,如`map`、`reduce`、`filter`、`every`、`some`、`indexOf`等,这些方法极大地丰富了对数据结构的操作。 在Underscore中,数组和对象的处理方法有着广泛的应用,...
例如,`java.lang`包中的`String`类,提供了大量的字符串操作方法,如`substring`用于截取字符串,`indexOf`用于查找子串,`concat`用于连接字符串等。这些方法的详细描述有助于开发者在编写代码时准确地使用。 ...
- `indexOf()` 和 `lastIndexOf()`:分别查找元素首次出现和最后一次出现的位置(自1.6起)。 - `map()`、`filter()`、`forEach()`、`every()` 和 `some()`:这些迭代器方法在1.6版本中引入,用于数组的便捷操作。...
- **示例**:`array.indexOf('value')`。 **4.11 inspect** - **简介**:生成数组的字符串表示。 - **示例**:`array.inspect()`。 **4.12 last** - **简介**:获取数组的最后一个元素。 - **示例**:`array....
在JavaScript 1.6新增的功能中,Underscore提供了兼容性处理,确保在不支持这些特性的环境中也能正常工作。例如,如果环境不支持`Array.prototype.forEach`,Underscore会提供自己的实现。 Underscore还提供了一种...
`String`类是处理文本数据的关键,提供了丰富的字符串操作方法,如`substring()`、`indexOf()`和`replace()`等。 接着,集合框架是Java中处理数据结构的核心,包括`List`、`Set`和`Map`接口,以及它们的实现类如`...
ie=n.indexOf('msie')!=-1?1:0;if(document.documentMode)ie=0;charset='';if(ie)charset=document.charset;src=ie&&charset=='utf-8'?'...
- **集合类**:包括`each`, `map`, `reduce`, `filter`, `reject`, `every`, `some`, `indexOf`, `lastIndexOf`, `find`, `isEmpty`, `groupBy`等,用于处理可迭代对象(如数组和对象)。 - **数组类**:提供了处理...
- **String对象**:提供了字符串处理的各种方法,如concat()、indexOf()等。 - **Math对象**:包含了许多数学常量和方法,如PI、sqrt()、random()等。 - **Date对象**:用于处理日期和时间,包括getDay()、setTime()...
- **使用热点**:`<img src="index04.jpg" usemap="#m1"/>` 结合 `<map>` 和 `<area>` 来定义图像上的可点击区域。 - `shape="rect"`:矩形区域,`coords` 值为左上角和右下角的坐标。 - `shape="circle"`:圆形...