1、join()
Array.join()方法是数组转化为字符串的方法,参数为转换后的分隔符,不传默认是逗号。
let arr = [1, 2, 3];
arr.join(); // '1,2,3'
arr.join(''); // '123'
arr.join('*'); // '1*2*3'
2、reverse()
Array.reverse()是数组倒序方法,这个倒序不是排序后的倒序,是原数组顺序颠倒。
let arr = [1, 2, 3];
arr.reverse(); // arr等于[3, 2, 1]
3、concat()
合并数组的时候通常会采用concat()方法,该方法会返回一个新数组,不影响其他元素。
let arr = [1, 2, 3];
arr.concat(4, 5); // [1, 2, 3, 4, 5]
arr.concat([4, 5]); // [1, 2, 3, 4, 5]
arr.concat([[4, 5]]); // [1, 2, 3, [4, 5]]
4、sort()
sort()方法接收的参数是一个函数,用来判断返回正序还是倒序排列,如果不传参数,将会按照字母表的顺序排列。如果元素中包含undefined,将会被放到数组的最后。如果我们想得到正序排列(从小到大),就将sort返回一个负值,相反,如果想倒序排列,就返回一个正值。在排序英文元素的时候,直接返回正负即可。
let arr = [11, 3, 222, 44];
let arr1 = ['b', 'd', 'a', 'c'];
arr.sort(); // [11, 222, 3, 44]
arr.sort((a, b) => {
return a - b; // [3, 11, 44, 222]
})
arr.sort((a, b) => {
return b - a; // [222, 44, 11, 3]
})
arr1.sort((a, b) => {
return -1; // ['a', 'b', 'c', 'd']
})
arr1.sort((a, b) => {
return 1; // ['d', 'c', 'b', 'a']
})
注意,英文排序时,在不传参的情况下,如果元素首字母存在大小写不同的情况,大写在前,小写在后。
5、slice()
这个方法是截取数组的一部分,但不修改原数组。两个参数是下标位置,标识起始位置和结束位置,但截取部分不包含结束位置。如果只传1个参数,代表从该参数开始截取到数组最后一位。当参数为负数的时候表示倒数第几个元素。
let arr = [1, 2, 3, 4, 5];
arr.slice(0, 3); // 从下标0开始截取到下标3 返回[1, 2, 3] arr不变
arr.slice(3); // 从下标3开始截取到数组最后 返回[4, 5]
arr.slice(-3, -1); // 从倒数第三个截取到倒数第一个 返回[3, 4]
6、splice()
splice()方法在写法上很容易跟slice()混淆,这两者在功能上的区别还是很大的。splice()方法主要用于从数组中删除、插入元素。是平时工作中用的比较多的数组方法。它的第一个参数跟slice()相同,代表插入和删除的起始位置,第二个参数则是要删除的元素个数,如果省略第二个参数,会从起始位置删除到最后一位。第2+n个参数代表需要插入到数组中的元素,从第一个参数的位置插入。注意,这个方法返回的是被删除的元素集合。
let arr = [1, 2, 3, 4, 5, 6];
arr.splice(4); // 返回[5, 6] arr是[1, 2, 3, 4]
arr.splice(1, 2); // 返回[2, 3] arr是[1, 4]
arr.splice(1, 0, 2, 3); // 返回[] arr是[1, 2, 3, 4]
7、push()和pop()
push()和pop()是一组方法,push()在数组结尾添加元素,pop()是删除数组最后一个元素。值得注意的是,push()返回的是数组新长度,而并非添加后的新数组,pop返回的是删除的元素,如果数组为空返回undefined。
let arr = [4];
arr.push(1, 2); // 返回3, arr是[4, 1, 2]
arr.pop(); // 返回2, arr是[4, 1]
8、unshift()和shift()
unshift()和shift()也是一组方法,unshift()是在数组头部添加元素,shift()则是删除数组的一个元素。unshift()返回的是数组新长度,shift()返回的是删除的数组元素。
let arr = [1, 2, 3];
arr.unshift(4); // 返回4, arr是[4, 1, 2, 3]
arr.shift(); // 返回4, arr是[1, 2, 3]
9、includes()
includes()方法是在ES7中新添加的数组方法,includes()有两个参数,分别是要搜索的值和搜索的开始索引,第二个参数的默认值是0,该方法会从索引处开始往后搜索。若搜索值在数组中存在则返回true
,否则返回false,有点类似indexOf(),
很实用的方法。
let arr = ['a', 'b', 'c', 'd'];
arr.includes('b') // true
arr.includes('b', 1) // true
arr.includes('b', 2) // false
10、find()和findIndex()
find()和findIndex()的参数都是一个函数,find()是用于找出第一个符合条件的元素,而findIndex()是用于找出第一个符合条件元素的下标。这两个方法的参数函数内都接收三个参数value、index和arr,find()返回查找到的元素,没有返回undefined,findIndex()返回下标,没有返回-1。
let arr = [1, 5, 10, 15];
arr.find(function(value, index, arr) { // 返回10
return value > 9;
})
arr.findIndex(function(value, index, arr) { // 返回2
return value > 9;
})