1、ES5数组方法
1.1、不改变原数组:
1.Array.isArray()
用来判断一个值是否为数组。它可以弥补typeof运算符的不足
2.valueOf()
返回数组本身
3.toString()
返回数组的字符串形式
4.pop()
用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组。
5.join()
以参数作为分隔符,将所有数组成员组成一个字符串返回。如果不提供参数,默认用逗号分隔。
6.concat()
用于多个数组的合并。它将新数组的成员,添加到原数组成员的后部,然后返回一个新数组,原数组不变。
7.slice()
用于提取原数组的一部分,返回一个新数组,原数组不变。
8.map()
对数组的所有成员依次调用一个函数,根据函数结果返回一个新数组。
9.forEach()
与map方法很相似,也是遍历数组的所有成员,执行某种操作,但是forEach方法一般不返回值,只用来操作数据。如果需要有返回值,一般使用map方法。
forEach方法的参数与map方法一致,也是一个函数,数组的所有成员会依次执行该函数。它接受三个参数,分别是当前位置的值、当前位置的编号和整个数组。
10.filter()
filter方法的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。
11.some(),every()
这两个方法类似“断言”(assert),用来判断数组成员是否符合某种条件。
它们接受一个函数作为参数,所有数组成员依次执行该函数,返回一个布尔值。该函数接受三个参数,依次是当前位置的成员、当前位置的序号和整个数组。
some方法是只要有一个数组成员的返回值是true,则整个some方法的返回值就是true,否则false。
12.reduce(),reduceRight()
reduce方法和reduceRight方法依次处理数组的每个成员,最终累计为一个值。
reduce:是从左到右处理(从第一个成员到最后一个成员)
reduceRight:则是从右到左(从最后一个成员到第一个成员),其他完全一样。
13.indexOf(),lastIndexOf()
indexOf 方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。
lastIndexOf 方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1。
1.2、改变原数组:
1.push()
用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。
2.shift()
用于删除数组的第一个元素,并返回该元素。注意,该方法会改变原数组。
3.unshift()
用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。
4.reverse()
用于颠倒数组中元素的顺序,返回改变后的数组。注意,该方法将改变原数组。
5.splice()
用于删除原数组的一部分成员,并可以在被删除的位置添加入新的数组成员,返回值是被删除的元素。注意,该方法会改变原数组。
splice的第一个参数是删除的起始位置,第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素。
6.sort()
对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变。
2、ES6数组方法
2.1、不改变原数组:
1.扩展运算符
2.Array.from()
类数组转换成数组
3.Array.of()
方法用于将一组值,转换为数组。
4.find()
用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
5.findIndex()
与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
6.fill()
数组实例的方法使用给定值,填充一个数组。
7.entries(),keys() 和 values()
ES6 提供三个新的方法——entries(),keys()和values()——用于遍历数组。它们都返回一个遍历器对象(详见《Iterator》一章),可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。
8.includes()
数组实例的 方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似。ES2016 引入了该方法。
9.数组的空位,指数组的某一个位置没有任何值。比如,Array构造函数返回的数组都是空位。
2.2、改变原数组:
1.copyWithin()
在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。