作用 | 返回值 | 是否会改变原数组 | |
push() | 在数组的末端添加一个或多个元素 | 返回添加新元素后的数组长度 | 是 |
pop() | 删除数组的最后一个元素 | 返回删除的该元素 | 是 |
unshift() | 在数组的第一个位置添加元素 | 返回添加新元素后的数组长度 | 是 |
shift() | 删除数组的第一个元素 | 返回删除的该元素 | 是 |
concat() | 用于多个数组的合并,添加到原数组成员的后面 | 返回拼接后的数组 | 否 |
splice() | 删除原数组的一部分成员,并可以在删除的位置添加新成员 | 返回被删除的成员组成的数组 | 是 |
let arr = [1, 2, 3]; //在数组末尾插入一个元素 arr.push(4) console.log(arr) //[1, 2, 3, 4] //在数组末尾插入多个元素 arr.push(5, 6) console.log(arr); //[1, 2, 3, 4, 5, 6]
let arr = [1, 2, 3]; let temp = arr.pop() console.log(temp) //3 pop()返回的是删除的元素值 console.log(arr) //[1, 2]
let arr = [1, 2, 3]; //在数组的开始插入一个元素 arr.unshift(0) console.log(arr) //[0, 1, 2, 3,] //在数组的开始插入多个元素 arr.unshift(11, 12,13) console.log(arr) //[11, 12, 13, 0 , 1, 2, 3]
let arr = [1, 2, 3]; let temp = arr.shift(); console.log(temp); //1 console.log(arr) //[2, 3]
如果concat()接收的是原始类型的数据,用法跟push()很像,但concat不会改变原数组。
let arr = [1, 2, 3]; let temp = []; temp = arr.concat(4); console.log(arr, temp); // [1, 2, 3], [1, 2, 3, 4] //concat()也可以接收多个数值 temp = temp.concat(5, 6, 7); console.log(temp); //[1, 2, 3, 4, 5, 6, 7]
如果push()接收的参数是数组,会直接把这个数组插入到原数组后面。
let arr = [1, 2, 3]; arr.push([4, 5]); console.log(arr) //[1, 2, 3, [4, 5]]
如果concat()接收的参数是一个数组会自动把这个数组展开在插入到原数组后面。
let arr = [1, 2, 3]; temp = temp.concat([4, 5]); console.log(temp) //[1, 2, 3, 4, 5] 展开[11, 12],并把11, 12插入数组的后面
//concat只能展开一维数组, 如果是二维数组不能达到上述效果 temp = temp.concat([[11, 12], [13, 14]) //[1, 2, 3, 4, 5, [11, 12], [13, 14]]
concat会自动展开数组这很实用。比如,有一个应用场景:实现上拉加载更多。每加载新一页的数据,你都需要把这新一页的数据拼接到之前的数组中。这时,你可以用原来的数组concat新一页的数组(oldArr.concat(newArr)),就直接能把数据拼接好。当然了,push()也是可以实现同样的效果。
let arr = [1, 2, 3]; arr.push(...[4, 5]); console.log(arr) //[1, 2, 3, 4, 5]
arr.splice(start, count, addElement1, addElement2, ...)
splice的第一个参数是删除的起始位置(从0开始),第二个参数是被删除元素的个数。如果后面还有更多的参数,这些参数就是要被插入数组中的新元素。
参数是两位,并且第二位不为0时:
let arr = [1, 2, 3, 4, 5]; arr.splice(1, 2); console.log(arr) //[1, 4, 5];
参数为多位,且第二位不为0时:
let arr = [1, 2, 3, 4, 5]; arr.splice(1, 2, 12, 13); console.log(arr) //[1, 12, 13, 4, 5];
splice也可以在数组中不删除元素只添加元素:
let arr = [1, 2, 3, 4, 5]; arr.splice(1, 0, 11, 12); //第二元素设为0,也就是删除0个元素 console.log(arr) //[1, 11, 12, 2, 3, 4, 5];
注意:splice()的参数只有一位,假设这个参数为n,并且n小于或等于原数组的长度,原数组会裁剪成从索引为0到n-1的数组。
let arr = [1, 2, 3, 4]; arr.splice(2) console.log(arr) //[1, 2]
push()、pop()、shift()、unshift()、concat()、splice()的用法
原文:https://www.cnblogs.com/enhahaha/p/13940877.html