这是预期的行为吗?我希望在这里返回一个空数组。
的JavaScript
let arr = [1];
console.log(arr.splice(0, 1))
控制台
1
答案 0 :(得分:9)
因为它返回被删除的内容,在你的情况下是[1]。通话结束后,arr
将为空。
参见示例:
let arr = [1];
arr.splice(0, 1);
console.log(arr);

答案 1 :(得分:1)
Array.prototype.splice()返回已删除元素的数组。
您正在记录操作的返回值而不是数组的当前状态。
答案 2 :(得分:1)
splice()方法通过删除来更改数组的内容 现有元素和/或添加新元素。 Reference
此方法的语法是:
array.splice(start)
array.splice(start, deleteCount)
array.splice(start, deleteCount, item1, item2, ...)
您正在使用第二种语法并将0
作为开始,将1
作为deleteCount
传递,这意味着您要从第0个索引开始并删除1个项目(而不是1作为值数组)。
此方法返回包含已删除元素的数组。如果仅删除一个元素,则返回一个元素的数组。如果没有删除任何元素,则返回一个空数组。
因此,在这种情况下,结果为[1]
,即值为1
的数组,即您刚删除的项目。