Array
对象用于构造一个数组。Array
构造器会根据给定的元素创建一个 JavaScript 数组,但是当仅有一个参数且为数字时除外(详见下面的 arrayLength
参数)。注意,后面这种情况仅适用于用 Array
构造器创建数组,而不适用于用方括号创建的数组字面量。length
的值等于 arrayLength
的数组对象(言外之意就是该数组此时并没有包含任何实际的元素,不能理所当然地认为它包含 arrayLength
个值为 undefined
的元素)。如果传入的参数不是有效值,则会抛出 RangeError
异常。arr[i]
。forEach()
方法对数组的每个项执行一次提供的回调函数。currentValue
数组中正在处理的当前元素。index
可选,数组中正在处理的当前元素的索引。array
可选,forEach()
方法正在操作的数组。this
的值(参考对象)。thisArg
这个参数的作用就凸显出来了。注 意: 如果使用箭头函数表达式来传入thisArg
参数会被忽略,因为箭头函数在词法上绑定了this
值。
arr1
将回调函数的返回值item + 1
作为了数组中的元素,而arr2
由于回调函数没有返回值,所以创建了一个每项都为undefined
的数组。hasOwnPropery
方法判断某属性是否是该对象的实例属性。filter()
方法返回一个新数组,其包含通过回调函数测试的所有数组项。true
表示该元素通过测试,保留该元素,false
则不保留。它接受以下三个参数:element
数组中当前正在处理的元素。index
可选,正在处理的元素在数组中的索引。array
可选,调用了 filter
的数组本身。callback
时,用于指定 this
的值。item > 5
就会返回true
,则会通过回调函数的测试,从而将该数组项保留,因此将原数组过滤后返回的新数组是[6, 8, 9]
。find()
方法返回数组中通过回调函数测试的第一个数组项的值,如果没有通过测试则返回undefined
。item
的值;如果没有符合规则的数组项,则会返回undefined
。findIndex()
方法,区别在于 find 返回元素的值,而 findIndex则返回数组项的下标(索引)。some()
方法测试数组中是不是有数组项通过了回调函数的测试,返回一个Boolean类型的值。注意:如果用一个空数组进行测试,在任何情况下它返回的都是false
。
arr.length
为 4 ,但是回调函数只在索引为 0 的项上被调用了,后面的三项由于未被赋值,所以不调用回调函数。sort()
方法用原地算法对数组项进行排序,并返回数组。默认排序顺序是在将数组项转换为字符串,然后比较它们的UTF-16代码单元值。原地算法(in-place algorithm)是一种使用小的、固定数量的额外空间来转换资料的算法,不随着算法执行而逐渐扩大额外空间的占用。当算法执行时,输入的资料通常会被要输出的部份覆盖掉。
firstEl
第一个用于比较的元素。secondEl
第二个用于比较的元素。return a - b
。
所以对于数字的排列,升序返回return a - b
,降序返回return b - a
。注意: sort 方法如果不传入比较的回调函数,那么它将会根据字符的 Unicode位点进行排序。
reduce()
方法对数组中的每个项执行一个由您提供的callback函数,将其结果汇总为单个值返回。accumulator
**累计器,累计回调的返回值。它是上一次调用回调时返回的累积值,或initialValue
(见于下方)。currentValue
数组中正在处理的元素。currentIndex
可选,数组中正在处理的当前元素的索引。 如果提供了initialValue
,则起始索引号为0,否则为1。array
可选调用reduce()
的数组callback
函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素(也即针对数组的arr循环计算少一次,千万要注意这点)。 在没有初始值的空数组上调用 reduce 将报错。reduce()
是用来精简一组数据的,来得到一个更简单的结果,这个简单结果当然也可以是一个数组。由于也从来没有明文规定说这个结果(数组)必须要比原来的的数组长度要小。所以,我们可以使用reduce()
来把一个较短的数组转换成一个较长的数组。 当你需要从一个text文件里面去读取数据的时候,这种方法非常有用。下面是例子。假设我们已经读取到一系列简单文本数据,然后放入了一个数组。我们的需求是用逗号把它们分割,然后得到一个大的name 列表。