其他分享
首页 > 其他分享> > push()、pop()、shift()、unshift()、concat()、splice()的用法

push()、pop()、shift()、unshift()、concat()、splice()的用法

作者:互联网

  作用 返回值 是否会改变原数组
push() 在数组的末端添加一个或多个元素 返回添加新元素后的数组长度
pop() 删除数组的最后一个元素 返回删除的该元素
unshift() 在数组的第一个位置添加元素 返回添加新元素后的数组长度
shift() 删除数组的第一个元素 返回删除的该元素
concat() 用于多个数组的合并,添加到原数组成员的后面 返回拼接后的数组
splice() 删除原数组的一部分成员,并可以在删除的位置添加新成员 返回被删除的成员组成的数组

 

 

 

 

 

 

 

 

 

 

 1.push() 

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]

2.pop()

let arr = [1, 2, 3];
let temp = arr.pop()
console.log(temp) //3   pop()返回的是删除的元素值
console.log(arr) //[1, 2]

3.unshift()

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]

4.shift()

let arr = [1, 2, 3];
let temp = arr.shift();
console.log(temp); //1
console.log(arr) //[2, 3]

5.concat()

如果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()和concat()用法对比:

如果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]

 6.splice()

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]

 

标签:arr,console,log,shift,unshift,pop,let,数组,concat
来源: https://www.cnblogs.com/enhahaha/p/13940877.html