JavaScript Array.prototype.splice()用法

时间:2017-01-02 23:30:12

标签: javascript arrays

我正在尝试编写一个函数,根据输入从数组中删除一定数量的元素。正如您在下面的代码中看到的,我选择拼接数组以返回一个新数组。我在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

了解了这个问题

以下是我现在的代码:

function slasher(arr, howMany) {


  var newArray = arr.splice(0, howMany);

  return newArray;
}

slasher([1, 2, 3], 2);

然而,控制台为我提供了测试[1,2]的输出。

根据我在Mozilla上阅读的文档,我期待输出[3]。

更新:阅读评论后,我意识到我误解了splice()实际完成的内容。

3 个答案:

答案 0 :(得分:2)

要实现输出,您需要稍微修改代码。

.splice()函数会返回已删除的元素,因为您可以阅读here

要获得您希望修改代码的行为,请执行以下操作:

function slasher(arr, howMany) {
  arr.splice(0, howMany);
  return arr;
}

slasher([1, 2, 3], 2);

答案 1 :(得分:1)

splice将返回从数组中删除的元素,而原始数组将被修改。

答案 2 :(得分:0)

阅读评论后,我发现了自己的错误。如果将输出返回请求更改为

return arr;

代码工作正常。

完整的工作代码是:

function slasher(arr, howMany) {


  var newArray = arr.splice(0, howMany);

  return arr;
}