封装删除数组最后一个元素的多种方法

博客介绍了多种JavaScript数组拷贝方法,包括slice + pop、利用slice、filter、push.apply + pop、join + split + pop、concat + pop等,还提及普通迭代拷贝、ES6扩展运算符和JSON方式,其中join + split + pop会使数据类型变为字符型。

slice +pop

function foo(arr){
     var res = arr.slice(0);
     res.pop();
     return res;
}

利用slice

function foo(arr) {
      return arr.slice(0, -1);
}
function foo(arr) {
     return arr2 = arr.slice(0, arr.length - 1);
}

利用filter

function foo(arr) {
    return arr.filter(function (a, i, r) {
       return i !== r.length - 1;
    });
}

利用push.apply+pop

function foo(arr) {
      var res = [];
      [].push.apply(res, arr);
      res.pop();
      return res;
}

利用join+split+pop

注意:数据类型会变成字符型

function foo(arr) {
   var res = arr.join().split(',');
   res.pop();
   return res;
}

利用concat+pop

function foo(arr) {
     var res = arr.concat();
     res.pop();
     return res;
}

普通的迭代拷贝

function foo(arr, item) {
     var res = [];
     for (var i = 0; i < arr.length - 1; i++) {
          res.push(arr[i]);
     }
     return res;
}
function foo(arr) {
     var res = [];
     for (var i in arr) {
           if (i != arr.length - 1) {
                res.push(arr[i]);
           }
      }
      return res;
}

es6 …

function foo(arr) {
    let res = [...arr];
    res.pop();
    return res;
}

JSON

function foo(arr) {
      var res = JSON.parse(JSON.stringify(arr))
      res.pop()
      return res
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值