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

使用同一array变量反转整数数组,JS代码仅输出首值如何解决?

错误点梳理

  • 核心错误:循环内执行了array = array[left],直接将数组变量重新赋值为单个元素,后续所有操作都不再针对原数组,最终输出自然只有单个值
  • 反转逻辑错误:当前代码仅交换了left和right两个指针变量的数值,完全没有修改数组对应位置的元素,无法实现反转效果
  • 循环边界错误:双指针反转数组仅需遍历数组长度的一半即可,遍历全长度会导致已经交换完成的元素被再次换回去
  • 规范问题:循环变量i未添加声明关键字,会隐式创建为全局变量,存在作用域污染风险

修正后代码

let array = [3, 8, 9, 6, 4, 2]
reverseArray(array);
function reverseArray(array){
    let left = 0;
    let right = array.length - 1;
    // 左右指针相遇时停止循环
    while(left < right) {
        // 交换数组左右指针位置的元素
        const temp = array[left];
        array[left] = array[right];
        array[right] = temp;
        left++;
        right--;
    }
    console.log(array);
}

数组是引用类型,函数内修改的就是原数组本身,外部的array变量会同步更新为反转后的结果,符合你复用同一个变量的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:30:00