删除数组末尾元素
Posted 大黑ylx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除数组末尾元素相关的知识,希望对你有一定的参考价值。
题目描述
删除数组 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 }
来源:牛客网
以上是关于删除数组末尾元素的主要内容,如果未能解决你的问题,请参考以下文章