首页 > 试题广场 >

删除数组最后一个元素

[编程题]删除数组最后一个元素
  • 热度指数:109304 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
示例1

输入

[1, 2, 3, 4]

输出

[1, 2, 3]
function truncate(arr) {
    arr_1 = arr.slice(0);
    arr_1.pop();
    return arr_1;
}
发表于 2020-03-24 12:33:05 回复(0)
function truncate(arr) {
            var brr = arr.slice(0,3);
           
           return brr;
            
        }
        truncate([1, 2, 3, 4]);
发表于 2020-03-11 21:21:21 回复(0)
给大家来一个简单的方法,主要是利用 JSON
function truncate(arr) {
    var returnArr = JSON.parse(JSON.stringify(arr))
    returnArr.pop()
    return returnArr
}


发表于 2019-08-22 20:08:52 回复(0)
function truncate(arr) {
return arr.slice(0,arr.length-1)
}
function truncate(arr) {
return arr.slice(0,-1)
}
第一个占用内存更少

发表于 2019-08-01 11:06:56 回复(0)
// slice的用法:slice(a,b);
// a为数组元素开始的位置,b为被截取元素的位置
// 故a为0,b为arr.length-1
function truncate(arr) {
   return arr.slice(0,arr.length-1);
}
发表于 2019-06-11 19:54:12 回复(0)
function remove(arr){ var new=arr.slice(0); new.splice(new.length-1); return new; }
发表于 2017-03-02 14:36:59 回复(1)
function truncate(arr) {
	return arr2=arr.slice(0,arr.length-1);
}

PS:有疑惑看《javascript高级程序设计》上面讲的很清楚

发表于 2017-01-20 13:19:02 回复(0)
//利用slice
function truncate(arr) {
    return arr.slice(0,-1);
}
//利用filter
function truncate(arr) {
    return arr.filter(function(v,i,ar) {
        return i!==ar.length-1;
    });
}
//利用push.apply+pop
function truncate(arr) {
    var newArr=[];
    [].push.apply(newArr, arr);
    newArr.pop();
    return newArr;
}
//利用join+split+pop    注意!!!:数据类型会变成字符型
function truncate(arr) {
    var newArr = arr.join().split(',');
    newArr.pop();
    return newArr;
}
//利用concat+pop 
function truncate(arr) {
    var newArr = arr.concat();
    newArr.pop();
    return newArr;
}
//普通的迭代拷贝
function truncate(arr, item) {
    var newArr=[];
    for(var i=0;i<arr.length-1;i++){
        newArr.push(arr[i]);
    }
    return newArr;
}

编辑于 2016-08-28 19:57:25 回复(17)
思路:这道题的意思就是要我们删除数组中最后一个元素,那么我们平时在循环遍历的时候,条件都是在arr.length,相当于是把全部遍历了一次,但是我们现在需要的是删除数组中的最后一个,那么我们就需要条件截止到前一位,就是arr.length-1。这样既可。
代码如下:
function truncate(arr) {
    var newarr=[];
    for(var i=0;i<arr.length-1;i++){
        newarr.push(arr[i]);
    }
    return newarr;
    
}
发表于 2016-06-20 22:13:59 回复(2)
 function truncate(arr) {
	return arr.slice(0,arr.length-1);
}
发表于 2015-07-09 10:55:13 回复(9)

题目要求不要修改原数组,而var a = arr;这样的写法实际只是让a引用了arr,若进行修改,实际仍然修改了原数组。因此需要将原数组复制给一个新的数组,可以通过var a = arr.slice(0);实现。使用pop方法可以删除数组的最后一个元素。

function truncate(arr) {
 var a = arr.slice(0);
     a.pop();
     return a;
 }

编辑于 2015-08-19 10:50:58 回复(9)
 function truncate(arr) {
    return arr.slice(0, -1);
 }

slice()可以返回数组的一段,且返回的仍然是数组。

发表于 2015-08-31 16:41:40 回复(9)
function truncate(arr) {
    return arr.slice(0,arr.length-1);
}
slice() 方法可从已有的数组中返回选定的元素。
arrayObject.slice(start,end) 请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

发表于 2015-09-16 15:16:30 回复(0)
slice()方法返回指定数组的一个片段或者子数组,不改变原数组。本题要删除最后一个元素,
那就用该方法返回第0至倒数第二个的值
function truncate(arr) {
	return arr.slice(0,arr.length-1);
}

发表于 2016-09-19 03:08:31 回复(0)
function truncate(arr) {
    //方法一用slice和slice结合
/*var result=arr.slice(0);
    result.splice(-1,1);
    return result;*/
    //方法二使用slice方法,又有两种写法
    //return arr.slice(0,-1);
   // return arr.slice(0,arr.length-1);
    //方法三:使用pop删除最后一个元素
    var result=arr.slice(0);
    result.pop();
    return result;
}
发表于 2017-08-16 20:47:44 回复(0)
function truncate(arr) {
    var newArr = [];
	for(var i=0;i<arr.length-1;i++){
        newArr.push(arr[i]);
    }
    return newArr;
}
测试通过!

发表于 2017-04-09 20:38:48 回复(0)
function truncate(arr) {
        var result = [];
        for(var i = 0, len = arr.length; i < len - 1; i++){
            result[i] = arr[i];
        }
        return result;
    }

发表于 2017-02-22 22:03:56 回复(0)
function truncate(arr) {
    var arr2 = arr.slice(0);
    arr2.length=arr.length-1;
    return arr2;
}
发表于 2016-11-16 13:49:54 回复(0)
function truncate(arr) {
    var list=[...arr];
    list.pop();
    return list;
}

发表于 2022-05-25 16:37:16 回复(0)
function truncate(arr) {
var arr1=[];
    for(var i=0;i<arr.length-1;i++)
        {
            arr1.push(arr[i]);
        }
    return arr1;
}
删除最后一个元素 即创建一个新数组包含除了最后一个元素之前的所有元素
发表于 2022-01-27 15:01:54 回复(0)