题目描述

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

示例1

输入

[1, 2, 3, 4]

输出

[1, 2, 3]

代码实现:

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

 // slice方法用于提取原数组的一部分,返回一个新数组,原数组不变。
 function truncate(arr) {
    return arr.slice(0,arr.length-1);
}

// ----------------------------------------------------------
function truncate(arr) {
    var a=[];
    for(var i=0;i<arr.length;i++){
        a.push(arr[i]);
    }
    a.pop(a.length-1);
    return a;
}

truncate([1, 2, 3, 4]);


// ----------------------------------------------------------
//利用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;
}

results matching ""

    No results matching ""