Array
Array对象是用于构造数组的全局对象.
概述
数组对象是一个有序的数据(原始类型或对象类型)集合, 是一种类列表对象,它的原型提供了数组操作的方法.
数组只能用整数作为数组元素的索引,而不是字符串,且从0开始,第一个元素的索引为0.使用非整数并通过[]
或.
来访问数组或设置数组元素时,所操作的并不是数组列表的元素,而是数组对象属性集合上的变量.数组对象的属性和数组元素列表是分开存储的,并且数组的遍历和修改操作也不能作用于这些命名属性.
1 | var arr = []; |
原型方法
迭代方法
Array.prototype.forEach()
语法 :
array.forEach(callback(currentValue[, index[, array]]){ // do something }[, thisArg])
callback
: 数组中每个元素都会执行的回调函数.
currentValue
: 数组中正在被处理的当前元素.index
: 数组中正在被处理的当前元素的索引.array
: 调用该方法的数组.
thisArg
: 执行回调函数时this对应的对象. 如果省略了 thisArg
参数, 或者赋值为 null
或 undefined
, 则 this 指向全局对象.返回值
:
1 | let obj = {name: 'obj'}; |
Array.prototype.map()
语法 :
array.map(callback(currentValue[, index[, array]]){ // do something }[, thisArg])
callback
: 数组中每个元素都会执行的回调函数.
currentValue
: 数组中正在被处理的当前元素.index
: 数组中正在被处理的当前元素的索引.array
: 调用该方法的数组.
thisArg
: 执行回调函数时this对应的对象. 如果省略了 thisArg
参数, 或者赋值为 null
或 undefined
, 则 this 指向全局对象.返回值
: 由每个数组元素调用callback后的返回值组成的新数组.
1 | let obj = {name: 'obj'}; |
Array.prototype.every()
语法 :
array.every(callback(currentValue[, index[, array]]){ // do something }[, thisArg])
callback
: 数组中每个元素都会执行的回调函数.
currentValue
: 数组中正在被处理的当前元素.index
: 数组中正在被处理的当前元素的索引.array
: 调用该方法的数组.
thisArg
: 执行回调函数时this对应的对象. 如果省略了 thisArg
参数, 或者赋值为 null
或 undefined
, 则 this 指向全局对象.返回值
: 布尔值. 由数组中每个元素调用callback后, 当所有的元素都符合条件(真值)才返回true. 否则, 返回false. 另外, 对于放在空数组上的任何条件, 此方法返回 true.
1 | let obj = { |
Array.prototype.some()
语法 :
array.some(callback(currentValue[, index[, array]]){ // do something }[, thisArg])
callback
: 数组中每个元素都会执行的回调函数.
currentValue
: 数组中正在被处理的当前元素.index
: 数组中正在被处理的当前元素的索引.array
: 调用该方法的数组.
返回值
: 布尔值. 由数组中每个元素调用callback后, 当有元素符合条件(真值)就返回true. 否则, 返回false. 另外, 对于放在空数组上的任何条件, 此方法返回 false.
1 | let obj = { |
Array.prototype.filter()
语法 :
arr.filter(callback(currentValue[, index[, array]])[, thisArg])
callback
: 数组中每个元素都会执行的回调函数.
currentValue
: 数组中正在被处理的当前元素.index
: 数组中正在被处理的当前元素的索引.array
: 调用该方法的数组.
返回值
: 数组中每个元素调用callback后, 由符合条件的数组元素组成的新数组.如果没有符合条件的元素, 则返回空数组.
1 | let obj = { |
Array.prototype.find()
语法 :
arr.find(callback(currentValue[, index[, array]])[, thisArg])
callback
: 数组中每个元素都会执行的回调函数.
currentValue
: 数组中正在被处理的当前元素.index
: 数组中正在被处理的当前元素的索引.array
: 调用该方法的数组.
返回值
: 数组中每个元素调用callback后, 返回第一个符合条件的元素. 否则返回 undefined.
1 | let obj = { |
Array.prototype.findIndex()
语法 :
arr.findIndex(callback(currentValue[, index[, array]])[, thisArg])
callback
: 数组中每个元素都会执行的回调函数.
currentValue
: 数组中正在被处理的当前元素.index
: 数组中正在被处理的当前元素的索引.array
: 调用该方法的数组.
返回值
: 数组中每个元素调用callback后, 返回第一个符合条件的元素索引. 否则返回 -1.
1 | let obj = { |
Array.prototype.reduce()
语法 :
arr.reduce(callback(accumulator[, currentValue[, index[, array]]])[, initialValue])
callback
: 数组中每个元素都会执行的回调函数.
accumulator
: 上一个元素调用回调函数后的返回值. 回调函数第一次执行时, 若提供了initialValue,则accumulator取值为initialValue. 若没有提供initialValue, 则accumulator取值为数组中第一个元素.currentValue
: 数组中正在被处理的当前元素. 回调函数第一次执行时, 若提供了initialValue, 则currentValue取值为数组中第一个元素. 若没有提供initialValue, 则currentValue取值为数组中第二值.index
: 数组中正在被处理的当前元素的索引.array
: 调用该方法的数组.
返回值
: 数组中每个元素调用callback后, 将上一次回调函数执行结果作为下一次回调函数参数, 并最终返回单个结果值.
1 | let arr0 = [3, 2, 1]; |
Array.prototype.reduceRight()
语法(从右向左遍历,见reduce
) :
arr.reduceRight(callback(accumulator[, currentValue[, index[, array]]])[, initialValue])
Array.prototype.entries()
语法 :
arr.entries()
返回值
: 一个新的包含数组中每个索引的键/值对的Array Iterator
对象.
1 | let arr0 = [3, 2, 1]; |
Array.prototype.keys()
语法 :
arr.keys()
返回值
: 一个新的包含数组中每个索引键的Array Iterator
对象.
1 | let arr0 = [3, 2, 1]; |
Array.prototype.values()
语法 :
arr.values()
返回值
: 一个新的包含数组每个索引对应值的 Array Iterator
对象.
1 | let arr0 = [3, 2, 1]; |
Array.prototype[@@iterator]()
语法 :
arr[Symbol.iterator]()
返回值
: 数组的 iterator 方法,默认情况下与 values() 返回值相同.