跳到主要内容

定位

定位数组用 indexOf() 和 lastIndexOf() 。它们用来检索数组元素,返回指定的元素的索引位置。 JavaScript 最早在 String 中定义了 index() 和 lastIndexOf() 方法, ECMAScript 5 模仿在 Array 中也加入了这两个部分。

indexOf()

array.indexOf(searchElements[,formIndex])
  • searchElements : 必须参数,要定位的值

  • formIndex : 可选参数,用于开始的索引

  • 不选。默认 0

  • 大于 length ,返回 -1

  • 小于 0 ,倒着来

indexOf() 方法是按升序索引顺序执行搜索,即从左到右进行检索。检索时,会对数组元素与 searchElement 参数值进行全等比较( === )。

var ar = ['ab', 'cd', 'ef', 'ab', 'cd'];
console.log(qr.indexOf('cd') + ''); // 1
console.log(qr.indexOf(cd, 2) + ''); // 4
console.log(qr.indexOf('gh') + ''); // -1
console.log(qr.indexOf('ab', -2) + ''); // 3

lastIndexOf()方法

lastIndexOf()方法使用全等运算符"==="搜索数组中的项(从最后一项开始向前搜索),并返回匹配项的索引位置,其语法格式如下:

oArray.lastIndexOf(searchElement[,fromIndex])
  • 参数 searchElement 定义要在数组中查找的项。如果未找到,则返回值为-1。
  • 参数 fromIndex 定义查找的起始索引位置,从该位置开始搜索指定项,如果不定义该值,则表示从 oArray.length-1开始。

例如下面的代码,演示了如何使用该方法:

var A_Team = new Array('MarCaller', 'Mary', 'Jody', 'Judy');
// 注意与 indexOf 方法的结果对比
var temp_int = A_Team.lastIndexOf('Jody', 3); // 从索引3向前
console.log(temp_int); // 返回2
temp_int = A_Team.indexOf('Jody', 3); // 从索引3向后
console.log(temp_int); // 返回-1

断言函数

断言函数接收 3 个参数:元素、索引和数组本身。其中元素是数组中当前搜索的元素,索引是当前 元素的索引,而数组就是正在搜索的数组。断言函数返回真值,表示是否匹配。

find()和 findIndex()方法使用了断言函数。这两个方法都从数组的最小索引开始。 find()返回 第一个匹配的元素, findIndex()返回第一个匹配元素的索引。这两个方法也都接收第二个可选的参数, 用于指定断言函数内部 this 的值。

归并方法

`