JavaScript Array.prototype.splice()用法
我试图编写一个函数,根据输入从数组中删除一定数量的元素。正如您在下面的代码中看到的,我选择拼接数组以返回一个新数组。我在一家报纸上读到这件事 以下是我现在掌握的代码:JavaScript Array.prototype.splice()用法,javascript,arrays,Javascript,Arrays,我试图编写一个函数,根据输入从数组中删除一定数量的元素。正如您在下面的代码中看到的,我选择拼接数组以返回一个新数组。我在一家报纸上读到这件事 以下是我现在掌握的代码: function slasher(arr, howMany) { var newArray = arr.splice(0, howMany); return newArray; } slasher([1, 2, 3], 2); 但是,控制台在测试[1,2]时提供了输出 根据我在Mozilla上阅读的文档,我期望得
function slasher(arr, howMany) {
var newArray = arr.splice(0, howMany);
return newArray;
}
slasher([1, 2, 3], 2);
但是,控制台在测试[1,2]时提供了输出
根据我在Mozilla上阅读的文档,我期望得到[3]的输出
更新:在阅读了这些评论之后,我意识到我误解了splice()的实际功能
splice
将返回从数组中删除的元素,而原始数组将被修改。阅读注释后,我意识到我的错误。如果将输出返回请求更改为
return arr;
代码运行得很好
完整的工作代码为:
function slasher(arr, howMany) {
var newArray = arr.splice(0, howMany);
return arr;
}
要实现预期的输出,您必须稍微修改代码
.splice()
函数返回您可以读取的已删除元素
要获得预期的行为,请按如下方式修改代码:
function slasher(arr, howMany) {
arr.splice(0, howMany);
return arr;
}
slasher([1, 2, 3], 2);
“根据我在Mozilla上读到的文档,我期望得到[3]的输出。”再次查看文档。它清楚地说明了
.splice
的作用和返回的内容:“返回值:一个包含已删除元素的数组。”您删除了1
和2
,因此将[1,2]
作为返回值。您在哪里读到它返回一个包含保留元素的新数组?返回原始数组返回arr
var newArray=
不是必需的。@FelixKling谢谢,我确实阅读了文档,但我误解了。他们举了一个例子,让我觉得我所期待的会发生。当我更改代码以返回arr时;成功了。谢谢。请记住,.splice()
返回它删除的内容,但会更改原始数组。如果不想影响原始数组,请使用.slice()
,尽管它采用索引而不是计数.slice()
只返回切片。请记住,您返回的是原始数组,而不是新数组。不需要新的变量声明。你可以在我的解决方案中看到的作为参数的数组上工作。当我删除新的变量时,它不再正常工作。我现在意识到了这一点。文档的措辞让我误读了一个例子中发生的事情。