数组方法

79 阅读4分钟

1、转换方法

所有对象都具有 toLocaleString()、toString()和 valueOf() 方法。调用数组的 toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。

2、栈方法

push() 方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。

pop() 方法则从数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。

3、队列方法

shift() 能够移除数组中的第一个项并返回该项,同时将数组长度减 1。

unshift()与 shift() 的用途相反,它能在数组前端添加任意个项并返回新数组的长度。

4、重排序方法

reverse() 方法会反转数组项的顺序。

在默认情况下,sort() 方法按升序排列数组项——即最小的值位于最前面,最大的值排在最后面。

5、操作方法

concat() 方法可以基于当前数组中的所有项创建一个新数组。

slice() 方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。注意,slice()方法不会影响原始数组。

splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何 项,则返回一个空数组)。(可插入,可删除,可替换)

6、位置方法

ECMAScript 5 为数组实例添加了两个位置方法:indexOf()和 lastIndexOf()

indexOf()方法从数组的开头(位置 0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找。

7、迭代方法

ECMAScript 5 为数组定义了 5 个迭代方法。(以下方法都不会修改数组中的包含的值。)

1)every() 对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。

2)filter() 对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。

3)forEach() 对数组中的每一项运行给定函数。这个方法没有返回值。

4)map() 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

5)some() 对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。

8、归并方法

ECMAScript 5 还新增了两个归并数组的方法:reduce()和 reduceRight()

这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce()方法从数组的第一项开始,逐个遍历到最后。而 reduceRight()则从数组的最后一项开始,向前遍历到第一项。

9、es6新增数组方法

1、Array方法

1)Array.from() 用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。

2)Array.of() 用于将一组值,转换为数组。

2、实例方法

1)copyWithin() 在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。

2)fill() 使用给定值,填充一个数组。

3)find() 用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。

4)findIndex 方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

5)includes() 返回一个布尔值,表示某个数组是否包含给定的值。

6)entries(),keys() 和 values() 它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对数组的键名的遍历、values()是对数组键值的遍历,entries()方法是对数值的键值对的遍历。如果不使用for...of循环,可以手动调用遍历器对象的next方法,进行遍历。

3)