JavaScript中如何删除数组最后一个索引元素并返回剩余完整数组
问题原因说明
你遇到的问题是对数组方法的返回值和修改逻辑有误解,具体如下:
pop()方法是直接修改原数组的可变方法,它的返回值是被删除的最后一个元素,不是删除后的完整数组,调用该方法后原数组已经自动移除了最后一项。- 你写的
splice写法本身可实现需求,但splice同样是修改原数组的方法,它的返回值是被删除元素组成的数组,不能直接将返回值作为结果使用。
实现方案
方案1:修改原数组(推荐,性能最优)
直接调用pop()后使用原数组即可:
policy_info.transactions.pop(); // 此时 policy_info.transactions 就是你需要的删除最后一项后的数组
如果偏好使用splice,建议补全删除数量参数,语义更清晰:
// 第二个参数1表示仅删除1个元素 policy_info.transactions.splice(policy_info.transactions.length - 1, 1);
方案2:不修改原数组,生成新数组
如果需要保留原数组不变,使用slice方法生成新数组:
// slice 不会修改原数组,第二个参数-1表示截取到倒数第一个元素之前 const newTransactions = policy_info.transactions.slice(0, -1);
内容的提问来源于stack exchange,提问作者Sunil Sethi
相关产品推荐
相关产品推荐

