所以我试图从数组的开头创建一个javascript函数来删除n
元素,以下是代码:
function slasher(arr, howMany) {
arr.splice(0, howMany);
return arr;
}
slasher([1, 2, 3], 2);

问题:
有人可以向我解释为什么当我将函数内的代码更改为一行return arr.splice(0, howMany);
时,该函数会给我[1, 2]
而不是[3]
?
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
因为splice
返回删除的元素,但没有删除元素的数组。
var arr =[1,2,3]
var elementsRemoved = arr.splice(0,2);
elementsRemoved = [1,2] and arr would be [3].
答案 2 :(得分:1)
function slasher (arr, howMany){
return arr.splice(howMany, arr.length)
}
console.log(slasher([0,1,2,3,4],2))
splice语法是splice(索引,要从该索引中删除的elemnets的数量)
或
function slasher (arr, howMany){
return arr.slice(howMany, arr.length)
}
console.log(slasher([0,1,2,3,4],3))
答案 3 :(得分:0)
因为splice()返回值并同时更改数组。
所以当你return arr.splice()
时 - 你正在返回返回此功能的内容,但当你return arr
时 - 你正在返回你的新数组。