使用展开从数组中删除元素

Lok*_*wal 5 javascript ecmascript-6

我有很多动物arr = ['cat','dog','elephant','lion','tiger','mouse']

我想编写一个remove(['dog','lion'])可以从 arr 中删除元素的函数,我们可以使用 es6 spread 编写这个函数吗?

例子:

arr = ['cat','dog','elephant','lion','tiger','mouse']
remove(['cat', 'lion'])
Run Code Online (Sandbox Code Playgroud)

arr 应该更改为

arr = ['dog','elephant','tiger','mouse']
Run Code Online (Sandbox Code Playgroud)

注意:我不想要突变,所以请不要建议改变数组的解决方案。

T.J*_*der 4

不,你不能,因为它们并不相邻。有一些关于进一步扩展和休息语法的讨论,但即使在这些讨论中,我也不认为一系列不连续的选择是可能的。

我认为您能得到的最接近的结果是专门调用前几个,然后对之后的所有内容使用剩余语法'lion'

const arr = ['cat','dog','elephant','lion','tiger','mouse'];
const arr2 = [arr[1], arr[2], ...arr.slice(4)];
console.log(arr2);
Run Code Online (Sandbox Code Playgroud)

...我确信这不是您想要做的。:-)

  • 是的,这不是我想要的。但很遗憾知道这是不可能做到的。 (2认同)