gpt4 book ai didi

javascript - 使用 slice 或 spread 从 JavaScript 中的数组中删除元素

转载 作者:搜寻专家 更新时间:2023-11-01 04:44:41 25 4
gpt4 key购买 nike

我一直在观看来自 Dan Abramov 的关于 redux 的视频 avoiding-array-mutations并且我已经弄清楚如何使用 slice 通过 id 从数组中删除一个元素,返回新数组而不发生变化。

var arrayOld = ['apple', 'orange', 'fig']
var index = arrayOld.indexOf('orange')
var arrayNew = arrayOld.slice(0,index).concat(arrayOld.slice(index + 1))
// ['apple', 'fig']

我想知道如何使用 es6 spread 语法来做同样的事情?

另外我想知道为什么没有更简单的方法:例如es6 中的一个辅助函数来执行此操作,它的工作原理与 concat 方法一样简单,您可以在其中传入要删除的元素的 id,它会返回新数组,因此基本上是拼接但没有突变。

最佳答案

正如@thefourtheye 已经提到的,最好在您的示例中使用 .filter

但是,如果您想使用展开运算符按索引删除元素,您可以执行以下操作:


<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="true">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>let arrayOld = ['apple', 'orange', 'fig']
let index = 1;
let arrayNew = [...arrayOld.slice(0, index), ...arrayOld.slice(index + 1)];
console.log(arrayOld);
console.log(arrayNew);</code></pre>
</div>
</div>


关于javascript - 使用 slice 或 spread 从 JavaScript 中的数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37805412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com