删除数组末尾元素

题目描述

删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组。

 

第一种方法(concat  +  splice):

1 function truncate(arr) {
2     var newArr = arr.concat();//concat(item)连接生成新数组,无item则是浅复制
3     newArr.splice(arr.length-1,1);//splice第一个参数为要删除的起始位置,第二个参数为删除的个数
4     return newArr;
5 }

 

第二种方法(concat  +  pop):

1 function truncate(arr) {
2     var newArr = arr.concat();
3     newArr.pop();//pop()返回的是数组末尾元素
4     return newArr;
5 }

 

第三种方法( filter ):

1 function truncate(arr) {
2     //filter利用指定函数确定是否在返回的数组中包含某一项
3     var newArr = arr.filter(function(item,index,arr){  
4         return index != arr.length-1; 
5     });
6     return newArr;
7 }

 

第四种方法(jion + split + pop):

 1 function truncate(arr) {
 2     /*join(元素) 方法用于把数组中的所有元素放入一个字符串。
 3      元素是通过指定的分隔符进行分隔的。
 4      如:
 5      arr.join() 返回 1,2,3
 6      arr.join('/') 返回 1/2/3 
 7      
 8      split(元素)指定分隔符,返回新数组
 9      */
10     var newArr = arr.join().split(',');
11     newArr.pop();
12     return newArr;
13 }

 

第五种方法(apply  +  pop):

1 function truncate(arr) {
2     /*
3     apply(thisObj,[argArray]) :应用某一对象的一个方法,用另一个对象替换当前对象。实际上是改变函数体内 this 的值 
4     */
5     var newArr = [];
6     [].push.apply(newArr , arr);
7     newArr.pop();
8     return newArr;
9 }

 

第六种方法(for循环赋值):

1 function truncate(arr) {
2     var newArr = new Array();
3     for(var i = 0; i<arr.length ; i++){
4         newArr[i] = arr[i];
5     }
6     newArr.pop();
7     return newArr;
8 }

 

来源:牛客网

转载于:https://www.cnblogs.com/daheiylx/p/8877099.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值