牛客JavaScript算法题 - 删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组

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

解决办法
1. slice() + pop()
  • slice() 方法用数组的某个片段切出新数组。本例从数组元素 0 开始切出一段数组。它不会从源数组中删除任何元素。不会改变原数组
  • pop()方法从数组中删除最后一个元素。
function truncate(arr) {
    
    
	//var arr1 = arr;	//这样写实际是arr1引用了arr,实际上修改的还是arr
    var arr1 = arr.slice(0);	//将原数组复制给一个新的数组
    arr1.pop();
    return arr1;	//[1, 2, 3]
}
var arr = [1, 2, 3, 4];
document.write(truncate(arr));
2. concat() + pop()
  • concat()方法通过合并(连接)现有数组来创建一个新数组。
function truncate(arr) {
    
    
    var arr1 = arr.concat();
    arr1.pop();
    return arr1;	//[1, 2, 3]
}
var arr = [1, 2, 3, 4];
document.write(truncate(arr));
3. push()
  • push()方法(在数组结尾处)向数组添加一个新的元素。
  • 定义一个新的数组arr1,将数组arr中的前arr.length-1个元素添加到arr1
function truncate(arr) {
    
    
    var arr1 = [];
    for(var i = 0; i < arr.length-1; i++){
    
    
        arr1.push(arr[i]);
    }
    return arr1;	//[1, 2, 3]
}
var arr = [1, 2, 3, 4];
document.write(truncate(arr));
4. slice()
function truncate(arr) {
    
    
    return arr.slice(0,arr.length-1);
}

猜你喜欢

转载自blog.csdn.net/weixin_45663697/article/details/110367759