JavaScript 数组中常用的属性和方法
—— 数组是一种类列表对象,Array 是数组的构造函数
Array 构造函数的属性
- Array.length : Array 构造函数的 length 属性
- Array.prototype : 表示 Array 构造函数的原型,并允许向所有 Array 对象添加新的属性和方法。
- prototype 属性,它是函数所独有的,它是从一个函数指向一个对象。它的含义是函数的原型对象,它的作用就是包含可以由特定类型的所有实例共享的属性和方法,也就是让该函数所实例化的对象们都可以找到公用的属性和方法。任何函数在创建的时候,其实会默认同时创建该函数的prototype对象。
- get Array[@@species]: 语法:Array[Symbol.species] 返回 Array 的构造函数。
Array 构造函数的方法
- Array.isArray() : 用来判断某个变量是否是一个数组对象。
- Array.from() : 从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
- Array.of() : 创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型,Array.of() 和 Array 构造函数之间的区别在于处理整数参数:Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个长度为7的空数组(注意:这是指一个有7个空位(empty)的数组,而不是由7个undefined组成的数组)。
Array 原型对象的方法
—— 所有数组实例都会从 Array.prototype 继承属性和方法。修改 Array 的原型会影响到所有的数组实例。
[ 属性 ]
- Array.prototype.constructor
- constructor 属性是对象( Array.prototype 是个数组)才拥有的,它是从一个对象指向一个函数,含义就是指向该对象的构造函数,每个对象都有构造函数
- Array.prototype.length;
- Array.prototype 是个数组,所以它也有 length 属性,这个值为 0,因为它是个空数组。
[ 数组的修改方法 ]
- copyWithin: 浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。
- fill: 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
- pop: 删除数组的最后一个元素,并返回这个元素。
- push: 在数组的末尾增加一个或多个元素,并返回数组的新长度。
- reverse: 颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个。
- shift: 删除数组的第一个元素,并返回这个元素。
- sort: 对数组元素进行排序,并返回当前数组。
- splice: 通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
- unshift: 在数组的开头增加一个或多个元素,并返回数组的新长度。
[ 数组的访问方法 ]
- concat: 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
- includes: 判断当前数组是否包含某指定的值,如果是返回 true,否则返回 false。
- join: 将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符
- slice: 返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。
- toString: 返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的 Object.prototype.toString() 方法。
- toLocaleString: 返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString 方法转成字符串,遮蔽了原型链上的 Object.prototype.toLocaleString() 方法。
- indexOf: 返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
- lastIndexOf: 返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
[ 数组的迭代方法 ]
- forEach: 为数组中的每个元素执行一次回调函数。
- entries: 返回一个新的 Array Iterator 对象,该对象包含数组中每个索引的键/值对。
- every: 测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
- some: 如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。
- filter: 将所有在过滤函数中返回 true 的数组元素放进一个新数组中并返回。
- find: 找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回 undefined。
- findIndex: 找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回 -1。
- keys: 返回一个数组迭代器对象,该迭代器会包含所有数组元素的键。
- values: 返回一个数组迭代器对象,该迭代器会包含所有数组元素的值。
- map: 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
- reduce: 对数组中的每个元素执行一个由您提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。
从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
- reduceRight: 接受一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值。
从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。
- flat: 按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
- flatMap: 首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。