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

这篇博客介绍了在不直接修改原数组的情况下,如何使用JavaScript的slice(), pop(), concat(), 和 slice() 方法删除数组的最后一个元素。每个方法的实现原理和代码示例都进行了详细说明,确保了原数组不受影响。
摘要由CSDN通过智能技术生成

题目: 删除数组 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);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值