数组的堆栈方法(以下方法均修改原有数组)
push()
将一个或多个元素添加到数组的末尾,并返回该数组的新长度。该方法修改原有数组。
var arr = [1,2,3]
arr.push(4)
arr.push(4,5,6)
arr.push(...arr)
pop()
删除数组最后一个元素,并返回该元素的值。(不需要参数)
var arr = [1,2,3]
var res = arr.pop()
//arr:[1,2] res:3
unshift()
将一个或多个元素添加到数组的开头,并返回该数组的新长度
var arr = [1,2,3]
arr.unshift(0)
arr.unshift(1,2,3)
arr.unshift(...arr)
shift()
删除数组第一个元素,并返回该元素的值。(不需要参数)
var arr = [1,2,3]
var res = arr.shift()
//arr:[2,3] res:1
数组删改
silce()
silce方法返回一个新的数组对象,接受两个参数begin和end,新的数组是原数组的浅拷贝,选择的范围是[begin,end),该方法不改变原数组。
var arr = [1,2,3,4,5,6,7]
var arr2 = arr.slice(2) //[3,4,5,6,7]
var arr3 = arr.slice(2,4)//[3,4]
var arr4 = arr.slice(2,10)//[3,4,5,6,7]
var arr5 = arr.slice(-1)//[7]
var arr6 = arr.slice(-3,-1)//[5,6]
var arr7 = arr.slice(4,2)//[]
由于是浅拷贝,所以若原数组的某个元素是某个引用对象,该引用对象改变的话,原数组和新数组都会发生改变
var temp = {
cc:1
}
var arr = [temp,1,2,3]
var newArr = arr.slice(0,3)
console.log(arr[0].cc,newArr[0].cc)//1,1
temp.cc = 3
console.log(arr[0].cc,newArr[0].cc)//3,3