5.2.3 JavaScript之Array栈方法

Array栈方法

调用栈方法均会改变原数组

  • push 入栈(返回值是数组的长度)
//在数组末尾添加元素
var arr = [1, 2, 3];
var res = arr.push(4, 5);
console.log(arr);       // [1,2,3,4,5]
console.log(res);       // arr.length 5
res = arr.push([6, 7]);
console.log(arr);       // [1,2,3,4,5,[6,7]]
console.log(res);       // arr.length 6

//合并两个数组
var arr1 = [1, 2, 3];
var arr2 = [4, 5];
//相当于是arr1.push(4, 5),这里充分利用apply的机制,将要添加的元素作为数组参数的项,调用push方法
var res = Array.prototype.push.apply(arr1, arr2);
console.log(arr1);  // [1,2,3,4,5]   arr1被改变
console.log(arr2);  // [4,5]
console.log(res);   // 5

//concat合并数组,不改变参与运算的数组,返回新数组
var arr1 = [1, 2, 3];
var arr2 = [4, 5];
var arr3 = arr1.concat(arr2);
console.log(arr1);  // [1,2,3]
console.log(arr2);  // [4,5]
console.log(arr3);  // [1,2,3,4,5]

//像数组一样使用对象
var obj = {
    length: 0,
    addElem: function addElem (elem) {
        // obj.length is automatically incremented 
        // every time an element is added.
        [].push.call(this, elem);
    }
};

// Let's add some empty objects just to illustrate.
obj.addElem({});
console.log(obj)
/**
 * {
 *   0:{},
 *   length:1,
 *   addElem: function...
 * }
 */
  • pop出栈(返回出栈的元素值)
var arr = [1];
var res = arr.pop();
console.log(arr);   // []
console.log(res);   // 1
res = arr.pop();    // 对空数组调用pop方法返回undefined
console.log(arr);   // []
console.log(res);   // undefined
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值