JavaScript(ES6之前)数组方法总结

01

数组的创建

1、使用 Array 构造函数

 

JavaScript 的这个难点,毁掉了多少程序员?

2、使用数组字面量表示法

JavaScript 的这个难点,毁掉了多少程序员?

02

数组的原型方法

 

JavaScript 的这个难点,毁掉了多少程序员?

1、join()

将数组的元素组起一个字符串,该方法只接收一个参数:分隔符(默认为逗号)

JavaScript 的这个难点,毁掉了多少程序员?

2、push()

接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度

JavaScript 的这个难点,毁掉了多少程序员?

3、pop()

删除数组末尾最后一项,并返回删除元素的值

JavaScript 的这个难点,毁掉了多少程序员?

4、shift()

删除数组第一项,并返回删除元素的值(如果数组为空则返回 undefined )

JavaScript 的这个难点,毁掉了多少程序员?

 

5、unshift()

将参数添加到原数组开头,并返回数组的长度

JavaScript 的这个难点,毁掉了多少程序员?

 

6、sort()

默认按升序排列数组项,排序时会调用每个数组项的 toString() 转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值, sort() 方法比较的也是字符串,因此会出现以下的这种情况

JavaScript 的这个难点,毁掉了多少程序员?

为了解决上述问题,sort() 方法可以接收一个比较函数作为参数

JavaScript 的这个难点,毁掉了多少程序员?

 

7、reverse()

JavaScript 的这个难点,毁掉了多少程序员?

8、concat()

将参数添加到原数组的副本中,没参数时只是复制当前数组并返回副本。

JavaScript 的这个难点,毁掉了多少程序员?

9、slice()

返回从原数组中指定开始下标到结束下标之间的项组成的新数组

·  只有一个参数时,返回从该参数位置开始到末尾的所有项

·  如果有两个参数,返回起始和结束位置之间的项(但不包括结束位置的项)

JavaScript 的这个难点,毁掉了多少程序员?

10、splice()

可以实现删除、插入和替换

·  删除:3 种参数:起始位置、要删除的项数和要插入的项(这里为空)。例如, splice(0,2) 会删除数组中的前两项

JavaScript 的这个难点,毁掉了多少程序员?

 

·  插入:3 种参数:起始位置、要删除的项数(这里为0)和要插入的项。例如,splice(2,0,6,7) 会从当前数组的位置 2 开始插入6和7

JavaScript 的这个难点,毁掉了多少程序员?

 

·  替换:3 种参数:起始位置、要删除的项数和要插入的项。例如,splice (1,1,6,7) 会删除当前数组位置 1 的项,然后再从位置 1 开始插入6和7

JavaScript 的这个难点,毁掉了多少程序员?

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

11、indexOf()

接收两个参数:要查找的项和起始位置(默认从0开始),查找方向从左往右

JavaScript 的这个难点,毁掉了多少程序员?

12、lastIndexOf()

接收两个参数:要查找的项和起始位置(默认从末尾开始),查找方向从右往左

JavaScript 的这个难点,毁掉了多少程序员?

13、forEach()

对数组进行遍历循环,对数组中的每一项运行参数的函数。参数都是function类型,其中对应的参数分别为:遍历的数组内容,对应的数组索引,数组本身

JavaScript 的这个难点,毁掉了多少程序员?

14、map()

指“映射”,对数组中的每一项运行参数的函数,并返回每次函数调用的结果组成的数组

JavaScript 的这个难点,毁掉了多少程序员?

map() 的一个经典面试题

JavaScript 的这个难点,毁掉了多少程序员?

上述代码可分解为

JavaScript 的这个难点,毁掉了多少程序员?

 

其中 parseInt() 接收两个参数,第一个为 val 第二个为 key,当 val 大于 key 时则为 NaN

15、filter()

指“过滤”,数组中的每一项运行参数的函数,并返回满足过滤条件组成的数组

JavaScript 的这个难点,毁掉了多少程序员?

 

16、every()

判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true

JavaScript 的这个难点,毁掉了多少程序员?

17、some()

判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true

JavaScript 的这个难点,毁掉了多少程序员?

18、reduce()

实现迭代数组的所有项,然后构建一个最终返回的值。reduce() 接收两个参数:在每一项上调用的函数,作为归并基础的初始值。其中函数接收 4 个参数:前一个值、当前值、项的索引和数组对象

JavaScript 的这个难点,毁掉了多少程序员?

19、reduceRight()

与 reduce() 同理,但遍历是从右往左,与 reduce() 反向

 

 

 

相关文章: