刪除數組末尾元素


題目描述

刪除數組 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