-
push()
let arr = ['javascript', 'css'];
alert( arr.push('html') );// 3
alert( arr );// javascript, css, html
-
pop()
let arr = ['javascript', 'css'];
alert( arr.pop() );// css
alert( arr );// javascript
-
unshift()
let arr = ['is', 'head'];
alert( arr.unshift('here') );// 3
alert( arr );// here, is, head
-
shift()
let arr = ['here', 'is', 'head'];
alert( arr.shift() );// here
alert( arr );// is, head
-
splice()
arr.splice(start[, deleteCount, elem1, ..., elemN])
start
为开始此次操作的索引值,deleteCount
为删除的个数,elem
为替换或添加的元素,例:
let arr = ["hello", "world", "web", "html"]
alert( arr.splice(1, 2, "javascript","css") );//hello,javascript,css,html
//从索引1开始删除2个元素,并将"javascript" "css" 替换至原来的位置
- 注:
splice
方法返回的是一个包含了被删除元素的数组,而非删除了元素后的新数组
-
slice()
- 从索引
start
到索引end
创建一个新数组(包含索引start
,但不包含索引end
)
arr.slice([start], [end])
let arr = ['h', 't', 'm', 'l'];
alert( arr.slice( 1, 3) );// t,m
alert( arr.slice(-4,-1) );// h,t,m
alert( arr.slice(1) );// t,m,l
alert( arr.slice() );// h,t,m,l ;相当于生成一个数组的副本
-
concat()
- 将参数(数组或值)添加至原数组末尾并返回此新数组,不会影响原数组
let arr = [1, 2];
alert( arr.concat(3, 4) );//1,2,3,4
alert( arr.concat([3, 4], [5, 6], 7, 8) );//1,2,3,4,5,6,7,8
alert( arr );//1,2
let arr = [1, 2];
let obj = {
0: "html",
1: "css"
};
alert( arr.concat(obj) );//1,2,[object Object]
- 可以为对象添加
Symbol.isConcatSpreadable
属性来解决此问题:
let arr = [1, 2];
let obj = {
0: "html",
1: "css",
[Symbol.isConcatSpreadable]: true
};
alert( arr.concat(obj) );//1,2,html,css