关注
function removeWithoutCopy(arr, item) {
arr.forEach(function (e) { if (e == item) {
arr.splice(arr.indexOf(item), 1); arr.length--; }
}); return arr; }
主要原因是,js数组调用splice方法删除数据后会重建数组索引,比如测试用例中的 removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2),在删除前两个2之后,数组
的索引实际减少了2,导致在forEach方法中最后的两个2实际已经越界而无法删除。解决
方法如上,每次删除一个元素后手工把arr的length减1
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 大疆今年的机械笔试难吗? #
34268次浏览 405人参与
# 文科生还参加今年的春招吗 #
1472次浏览 20人参与
# 影石Insta360求职进展汇总 #
105589次浏览 933人参与
# 大疆的机械笔试比去年难吗 #
63182次浏览 575人参与
# 选择和努力,哪个更重要? #
35909次浏览 385人参与
# 24届市场营销薪资爆料 #
8934次浏览 62人参与
# 一人推荐一个值得去的通信/硬件公司 #
160110次浏览 1729人参与
# 如果公司降薪,你会跳槽吗? #
42237次浏览 303人参与
# 提前批的机械人,你们都有面试了吗 #
86113次浏览 929人参与
# 产品实习,你更倾向大公司or小公司 #
128582次浏览 1710人参与
# 产品薪资爆料 #
96609次浏览 814人参与
# 春招启动,你开始投递了吗? #
42531次浏览 415人参与
# 职场上哪些事情令人讨厌 #
12542次浏览 57人参与
# 机械人,你的第一份感谢信是谁给的 #
19844次浏览 257人参与
# 秋招前后对offer的期望对比 #
220144次浏览 1648人参与
# 和牛牛一起刷真题 #
104891次浏览 2066人参与
# 大学四年该怎么过,才不算浪费时间? #
3246次浏览 32人参与
# 华为工作体验 #
149082次浏览 1051人参与
# 2022毕业的你对23届的寄语 #
35019次浏览 533人参与
# 你觉得机械有必要实习吗 #
33498次浏览 318人参与