为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

冉冉说 2021-04-27 09:10:10
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]时会得到一个空数组吗?
查看完整描述

4 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

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))


查看完整回答
反对 回复 2021-05-06
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

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));


查看完整回答
反对 回复 2021-05-06
?
HUH函数

TA贡献1836条经验 获得超4个赞

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))


查看完整回答
反对 回复 2021-05-06
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

array.splice(...)不返回新数组,而是修改输入数组。对于MDN,其返回值为:

包含已删除元素的数组。如果仅删除一个元素,则返回一个元素的数组。如果没有删除任何元素,则返回一个空数组。


查看完整回答
反对 回复 2021-05-06
  • 4 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信