方法列表

length

lengthArray 的实例属性。返回或设置一个数组中的元素个数。该值是一个无符号 32-bit 整数,并且总是大于数组最高项的下标。

示例

  1. const listA = [1, 2, 3];
  2. const listB = new Array(6);
  3. console.log(listA.length); // 3
  4. console.log(listB.length); // 6
  5. listB.length = 4294967296; // 2 的 32 次方 = 4294967296
  6. // 报错 RangeError: Invalid array length
  7. const listC = new Array(-100) // 负数
  8. // 报错 RangeError: Invalid array length

巧用

数组的 length 属性可以赋值,具有截断和扩展作用

  • 使用扩展操作时,即赋值之后的 length 大于 赋值前的,则会变成稀疏数组,使用 empty 来占位
  • 使用截断操作时,即赋值之后的 length 小于 赋值前的,则会直接删除多余的末尾元素
  1. const list = [1, 2, 3, 4, 5,]
  2. console.log(list.length) // 5
  3. list.length = 3
  4. console.log(list, list.length) // [1, 2, 3] 3
  5. list.length = 6
  6. console.log(list, list.length) // [1, 2, 3, empty × 3] 6

entries

entries 方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。

详情请见 iterator 对象

参数说明

  1. entries () return Array Iterator

示例

  1. var arr = ["a", "b", "c"];
  2. var iterator = arr.entries();
  3. // undefined
  4. for (let e of iterator) {
  5. console.log(e);
  6. // [0, "a"]
  7. // [1, "b"]
  8. // [2, "c"]
  9. }

inclueds

includes 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false

参数说明

  1. inclued (
  2. searchElement: T,
  3. fromIndex: number | undefined // [
  4. ): boolean
参数名 是否必填 类型 说明
searchElement T 需要查找的元素值(区分大小写)
fromIndex number fromIndex索引处开始查找 searchElement。如果为负值,则按升序从
array.length + fromIndex 的索引开始搜(即使从末尾开始往前跳 fromIndex的绝对值个索引,然后往后搜寻)。默认为 0

示例

  1. [1, 2, 3].includes(2); // true
  2. [1, 2, 3].includes(4); // false
  3. [1, 2, 3].includes(3, 3); // false
  4. [1, 2, 3].includes(3, -1); // true
  5. [1, 2, NaN].includes(NaN); // true

如果 fromIndex 大于等于数组的长度,则将直接返回 false,且不搜索该数组。

  1. var arr = ['a', 'b', 'c'];
  2. arr.includes('c', 3); // false
  3. arr.includes('c', 100); // false

如果 fromIndex 为负值,计算出的索引将作为开始搜索searchElement的位置。如果计算出的索引小于 0,则整个数组都会被搜索。

  1. var arr = ['a', 'b', 'c'];
  2. arr.includes('a', -100); // true
  3. arr.includes('b', -100); // true
  4. arr.includes('c', -100); // true
  5. arr.includes('a', -2); // false

indexOf

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

参数说明

  1. indexOf (
  2. searchElement: number,
  3. fromIndex: number | undefined // [
  4. ): number
参数名 是否必填 类型 说明
searchElement T inclueds
fromIndex number inclueds

示例

  1. var array = [2, 5, 9];
  2. array.indexOf(2); // 0
  3. array.indexOf(7); // -1
  4. array.indexOf(9, 2); // 2
  5. array.indexOf(2, -1); // -1
  6. array.indexOf(2, -3); // 0

indexOf 查询是是使用严格相等的

  1. const arr = [1, 2, 3, 4, 5,]
  2. console.log(arr.indexOf('1')) // -1

keys

keys 方法返回一个包含数组中每个索引键的**Array Iterator**对象。

参数说明

  1. keys () return Array Iterator 对象

示例

索引迭代器会包含那些没有对应元素的索引

  1. var arr = ["a", , "c"];
  2. var sparseKeys = Object.keys(arr);
  3. var denseKeys = [...arr.keys()];
  4. console.log(sparseKeys); // ['0', '2']
  5. console.log(denseKeys); // [0, 1, 2]

lastIndexOf

lastIndexOf 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。

使用方法与同 indexOf

values

values 方法返回一个新的 **Array Iterator** 对象,该对象包含数组每个索引的值。

参数说明

  1. values () return Array Iterator 对象

示例

使用 for of 进行迭代

  1. const arr = ['a', 'b', 'c', 'd', 'e'];
  2. const iterator = arr.values();
  3. for (let letter of iterator) {
  4. console.log(letter);
  5. } //"a" "b" "c" "d" "e"
  6. // 当然也可以写作 效果也是相同的
  7. for (let letter of arr.values()) {
  8. console.log(letter);
  9. }

使用 .next 进行迭代

数组迭代器是一次性的,或者说临时对象

  1. const arr = ['a', 'b', 'c', 'd', 'e'];
  2. const iterator = arr.values();
  3. iterator.next(); // Object { value: "a", done: false }
  4. iterator.next().value; // "b"
  5. iterator.next()["value"]; // "c"
  6. iterator.next(); // Object { value: "d", done: false }
  7. iterator.next(); // Object { value: "e", done: false }
  8. iterator.next(); // Object { value: undefined, done: true }
  9. iterator.next().value; // undefined