猿问

如何将项目添加到数组的中间?

function reverse(array,item){

  let word = Math.ceil(array.length/2)

  return array.splice(word,0,item)

}


console.log(reverse([1,2,4,5,6],3))

我想知道为什么当我调用函数而不是[1,2,3,4,5,6]时会得到一个空数组吗?


冉冉说
浏览 202回答 4
4回答

扬帆大鱼

splice()更改原始数组,slice()但不更改。如果您不想更改原始数组,请使用slice。function reverse(array,item){  let word = Math.ceil(array.length/2)  return [].concat(array.slice(0,word - 1), item, array.slice(word - 1));}console.log(reverse([1,2,4,5,6],3))

MMMHUHU

Array#splice 返回第二个参数计数的项目,即被删除的项目。要返回数组,您需要先返回然后数组,而不是已拼接的项目。function reverse(array, item) {    let word = Math.ceil(array.length / 2);    array.splice(word, 0, item);    return array;}console.log(reverse([1, 2, 4, 5, 6], 3));

HUH函数

splice不返回新数组,而是修改输入数组。您需要明确返回function reverse(array,item){  let word = Math.ceil(array.length/2)  array.splice(word,0,item)  return array}console.log(reverse([1,2,4,5,6],3))

至尊宝的传说

array.splice(...)不返回新数组,而是修改输入数组。对于MDN,其返回值为:包含已删除元素的数组。如果仅删除一个元素,则返回一个元素的数组。如果没有删除任何元素,则返回一个空数组。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答