js Array中pop、push、shift、unshift和concat的用法

js pop

将数组最后一个元素删除,并返回这个元素

1
2
3
var arr = [1,2,3,4,5];
arr.pop(); //5
arr //[1,2,3,4]

js push

将一个或多个元素添加到数组末尾,并返回新数组的长度

1
2
3
var arr = [1,2,3,4,5];
arr.push(7); // 6
arr // [1,2,3,4,5,7]

js shift

将数组第一个元素删除,并返回这个元素

1
2
3
var arr = [1,2,3,4,5];
arr.shift(); // 1
arr // [2,3,4,5]

js unshift

将一个或多个元素添加到数组开头,并返回新数组的长度

1
2
3
var arr = [1,2,3,4,5];
arr.unshift(0); // 6
arr // [0,1,2,3,4,5]

js concat

将一个或多个元素或者一个或多个数组添加到此数组,并返回新的数组

1
2
var arr = [1,2,3,4,5];
arr.concat(7,[8,9],[10]) //[1, 2, 3, 4, 5, 7, 8, 9, 10]

思考扩展

push、unshift都可以传多参,那用apply也可以实现数组的合并了。
当然concat已经包含这些功能了,只是想思维发散一下当练习了。

1
2
3
4
5
6
var arr = [1,2,3,4,5];
Array.prototype.push.apply(arr, [6,7]); //7
arr //[1,2,3,4,5,6,7]
Array.prototype.unshift.apply(arr, [-1,0]); //9
arr //[-1, 0, 1, 2, 3, 4, 5, 6, 7]

concat是可以传多参(值或数组),那用apply的话就可以实现二维数组合并成一维数组了。

1
2
var arr = [1,[2,3],[4,5,6]];
Array.prototype.concat.apply([], arr); //[1, 2, 3, 4, 5, 6]