1. push 和 pop
<1> push
push: 数组后面添加一项或多项
Array.push(): 返回改变后数组的长度值
var arr = [1,2,3];
var arLen = arr.push(22,0);
arr // [1, 2, 3, 22, 0]
arrLen // 5 数组长度
<2> pop
pop: 数组后面仅且只能删除一项
Array.pop(): 返回删除的末尾项
var arr = [1,2,3];
// arr.pop(3)和arr.push() 执行的结果是一样的
var rmAr = arr.pop();
arr // [1, 2]
rmAr // 3 删除的值
2. unshift 和 shift
unshift、shift 的原理及返回值和上面的push、pop对应一模一样,只不过是操作数组前面的值。eg:
unshift: 数组前添加一项
Array.unshift(): 返回改变后数组的长度值
unshift:
var arr = [1,2,3];
var arLen = arr.unshift(22,0);
arr // [22, 0, 1, 2, 3]
arrLen // 5 数组长度
shift:
var arr = [1,2,3];
// arr.shift(22,0) 和 arr.shift() 执行结果一样
var rmAr = arr.shift(22);
arr // [0, 1, 2, 3]
rmAr // 22 删除的值
3. slice
slice(start, end) 截取一段数组,返回截取出来的数组,原数组发生改变
start: 初始值的索引
end: 结束值的索引,但截取项的值不包含该end索引的值
var arr = [0, 8, 1, 3];
var newArr1 = arr.slice(1, 2),
newArr2 = arr.slice(1, 3),
newArr3 = arr.slice(1, arr.length);
newArr1 // [8] 不包含索引为2的值
newArr2 // [8, 1] 不包含索引为3的值
newArr3 // [8, 1, 3]
4. splice
splice(start, len, e1, e2, …) 该方法用于插入、删除或替换数组的元素,原数组会发生改变。
start: 初始值的索引
len: 删除的长度
e1, e2, …: 从start开始新增的元素
1. len > 0,便有删除属性,返回删除的数组项(rmSpl1,rmSpl2),原数组(arr)删除或者删除并增加的新数组:
var arr = ["name", "me", 9, 0, 8, 1, 3, "jack", 56, 89, 4, "jack", 56, 89, 4];
var rmSpl1 = arr.splice(7, 4),
rmSpl2 = arr.splice(7, 2, 'Mr zhao');
rmSpl1 // ["jack", 56, 89, 4] 删除的新数组项
rmSpl2 // ["jack", 56]
arr // ["name", "me", 9, 0, 8, 1, 3, 'Mr zhao', 89, 4]
如果len< 0, 便是从start开始向前删除,返回值和上面是一样的。
2. len = 0,如果 e1, e2, …有值,则是增加,无值不做任何操作
var arr = ["name", "me", 9, 0, 8, 1, 3, "jack", 56, 89, 4];
var rmSpl = arr.splice(7, 0, 'Mr zhao', 'beijing');
rmSpl // [] len为0,所以是空数组,只有对数组进行删除的时候才有返回值
arr // ["name", "me", 9, 0, 8, 1, 3, "Mr zhao", "beijing", "jack", 56, 89, 4]