javascript - 为什么我的 javascript 没有遍历所有参数?
问题描述
我正在从事 Odin 项目,并且正在从事基础知识第 4 部分“removeFromArray”任务。我必须返回一个删除了参数列表中所有元素的数组。它适用于两个参数,但我无法让它适用于四个参数。我的代码如下:
const removeFromArray = function(firstArray, ...toRemove) {
let modifiedArray = firstArray;
for (i = 0; i < firstArray.length; i++) {
if (modifiedArray.includes(toRemove[i])) {
modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1)
}
}
return modifiedArray;
}
removeFromArray([1, 2, 3, 4], 7, 2) // works, returns [1, 3, 4]
removeFromArray([1, 2, 3, 4], 3, 2) // also works, returns [1, 4]
removeFromArray([1, 2, 3, 4], 1, 2, 3, 4) //does not work, returns [3, 4]
任何帮助深表感谢。
解决方案
从数组中拼接会将所有剩余元素向下移动一个,因此您最终会跳过下一个元素。我建议改用Array.prototype.filter。
推荐阅读
- javascript - 切换一个按钮 - 也切换另一个按钮
- javascript - JavaScript 闭包计算总和
- c++ - Exe打开一个窗口但窗口卡住然后崩溃
- php - 引导折叠错误:SyntaxError:字符串与预期的模式不匹配
- python - 如何将 imshow 与新的 set_aspect 和 clim 一起使用?
- elixir - 为什么混合外部参照图会给我经验上错误的结果?
- python - Python:如何正确地将句子分成两个句子?
- spring-security - 在 Quarkus 中,@PreAuthorize 注释不适用于 quarkus 对 spring 安全性的扩展
- python - Python tkinter Treeview 从元组填充
- c# - 如何根据子标签调整 UserControl 的宽度和高度?