删除数组末尾元素


题目描述

删除数组 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 }

 

第四种方法(join + 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 }

 

来源:牛客网


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM