JavaScript splice方法删除数组元素后,为什么返回的不是修改后的数组?

javascript splice方法删除数组元素后,为什么返回的不是修改后的数组?

数组删除疑惑

javascript 的 splice 方法用于从数组中删除元素。然而,它返回已删除元素的副本,而不是修改后的数组。

问题场景

考虑以下代码:

console.log(['1', '2', '3', '4', '5'].splice(3, 1));

你会惊讶地发现输出是 ['4'],而不是期望的 ['1', '2', '3', '5']。

原因分析

splice 方法有三个参数:

  • 起始索引(本例中的 3)
  • 删除元素的数量(本例中的 1)
  • 要插入的新元素(本例中未提供)

splice 删除 arr[3](即 "4"),并返回一个包含已删除元素的数组。因此,输出为 ['4']。

解决方法

如果你想要返回修改后的数组,可以使用 tospliced 方法:

console.log(['1', '2', '3', '4', '5'].toSpliced(3, 1)); // 输出 ['1', '2', '3', '5']

tospliced 方法在修改数组的同时返回修改后的数组。

以上就是JavaScript splice方法删除数组元素后,为什么返回的不是修改后的数组?的详细内容,更多请关注硕下网其它相关文章!