You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中mudarPosicao函数内[0]的含义及函数功能是什么

代码整体作用

这段JS代码实现的是数组内指定元素的位置移动,示例中是把初始姓名数组里第2个元素(索引1)挪到数组首位(索引0)。
完整原代码如下:

var array = ["CAIO", "ARIADNE", "LETICIA", "SOFIA", "ENRIQUE", "FRANCISCO", "CHICO"]

function mudarPosicao(arr, de, para) {
    arr.splice (para, 0, arr.splice(de, 1)[0]);
    return arr
}
array = mudarPosicao(array, 1, 0)

console.log(array)
mudarPosicao函数功能

这是一个自定义的数组元素移位函数,入参含义如下:

  • arr:需要调整元素顺序的目标数组
  • de:待移动元素的当前索引(是葡萄牙语“从”的意思,对应源位置)
  • para:元素要移动到的目标索引(是葡萄牙语“到”的意思,对应目标位置)
    函数执行完成后会返回调整完顺序的数组。
代码中[0]写法的作用

要理解这个写法,首先要明确splice()方法的返回规则:不管调用splice删除几个元素,它的返回值永远是由所有被删除元素组成的新数组——哪怕只删除1个元素,返回的也是长度为1的数组,而不是被删的元素本身。
那行核心代码是从内向外执行的,拆分逻辑如下:

  1. 先执行内层的arr.splice(de, 1):从源索引de的位置删除1个待移动的元素。比如示例中de=1,这一步会删掉数组里的"ARIADNE",此时该方法的返回值是["ARIADNE"],是一个数组,不是字符串本身。
  2. 后面紧跟的[0],就是取这个返回数组的第0项,也就是拿到真正被删除的元素值,示例中就是取到字符串"ARIADNE"。

如果省略这个[0],外层splice插入的就会是长度为1的嵌套数组["ARIADNE"],而不是原始的字符串元素,最终得到的数组结构会不符合预期。

  1. 最后执行外层的arr.splice(para, 0, 取到的待移动元素):在目标索引para的位置,不删除任何元素(第二个参数传0),把待移动元素插入到该位置,就完成了“删原位置元素、插入到目标位置”的完整移位逻辑。

示例代码执行完成后,控制台输出的最终数组为:

["ARIADNE", "CAIO", "LETICIA", "SOFIA", "ENRIQUE", "FRANCISCO", "CHICO"]

内容的提问来源于stack exchange,提问作者Jorge Lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:18:21