【发布时间】:2022-01-09 20:04:41
【问题描述】:
我正在编写一个函数,它以一个数组 (arr1) 作为第一个参数,然后是 N 个参数 (arr2),通过它从数组 (@) 中删除 N 个参数 (arr2) 987654324@)。该函数似乎正在完成这项工作,只是当 if 语句为真时它立即停止。我知道这一点,因为如果我删除 if 语句,循环将迭代到最后。任何想法我做错了什么?
所以返回的数组下面应该是['A','B','E']。
const removeFromArray = function(arr1, arr2) {
let arr_new = arr1;
first_loop:
for (const [y, elem] of arr1.entries()) {
for (let i=1; i<arguments.length; i++) {
if ((elem === arguments[i])) {
arr_new.splice(y);
}
}
}
return arr_new;
}
alert(removeFromArray(['A', 'B', 'C', 'D','E'],'C','D'));
【问题讨论】:
-
请注意,
let arr_new = arr1;不会复制arr1。
标签: javascript arrays loops if-statement