【发布时间】:2020-11-04 20:27:21
【问题描述】:
const removeFromArray = function(firstArray,...toRemove) {
let modifiedArray = [...firstArray];
for (let i = 0; i < toRemove.length; i++) {
if (modifiedArray.includes(toRemove[i])) {
modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1)
}
}
return modifiedArray;
};
console.log(removeFromArray([3,4,5], 3,5)) ; //result is [4]
目标:将任何数组作为第一个参数,并从所述数组中删除您想要的任何内容作为下一个参数。
抱歉,这让我无法入睡,但 [i] 在做什么附加 toRemove?
假设我想做removeFromArray(['a','b','c'], 'b');
这意味着toRemove 等于'b'。 toRemove 的长度为 1。所以循环说运行一次迭代,因为 toRemove 只有 1 个长度。
至此,我想我明白了。我不明白为什么(modifiedArray.includes(toRemove[i])) 因为那不只是意味着(modifiedArray.includes('b'[1])) 吗?
如果你喜欢removeFromArray(['a','b','c'], 'a', 'c'); [i] 是否意味着toRemove 将被迭代两次,每次迭代一次,所以对于第二次迭代,其值为 2?
(modifiedArray.includes(['a', 'c'][1]))
(modifiedArray.includes(['a' ,'c'][2]))
还是这样
(modifiedArray.includes(['a' ,'c'][1]))
(modifiedArray.includes(['a' ,'c'][1]))
我希望我能够解释我的困惑我有点沮丧。谢谢!
【问题讨论】:
-
“这将意味着 toRemove 等于 'b'。” - 不,它是
[ 'b' ](或[ 'a', 'c' ]用于您的第二个示例),因为那是...做了什么 -> Rest parameters - JavaScript | MDN -
好吧,这更有意义,但仍然是 [i]?
-
您将如何访问
forloop 中的数组元素? -
对不起,我是在这里提问的人,伙计。
标签: javascript arrays function loops arguments