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

JS坐标更新函数异常排查:按指令更新坐标逻辑问题

问题排查与修复方案

核心问题分析

你的代码存在两个关键错误,导致坐标更新逻辑完全失效:

  • 循环变量误用:循环里的i是数组的索引(数字类型),你却将它和命令字符串(如'forward')做相等比较,这种匹配永远不会成立,所有坐标更新代码都没被执行。应该用commands[i]获取当前遍历到的命令内容。
  • 返回值错误:函数最后返回的是传入的原始coordinates数组,而非你更新后的x、y值组成的新数组,即便逻辑正确也得不到结果。

修正后的代码

function getLocation(coordinates, commands) {
  let x = coordinates[0];
  let y = coordinates[1];

  for (let i = 0; i < commands.length; i++) {
    const command = commands[i]; // 正确获取当前命令字符串
    if (command === 'forward') {
      y += 1;
    } else if (command === 'back') {
      y -= 1;
    } else if (command === 'right') {
      x += 1;
    } else if (command === 'left') {
      x -= 1;
    }
  }

  return [x, y]; // 返回更新后的坐标数组
}

console.log(getLocation([0, 0], ['forward', 'forward', 'left'])); // 输出 [-1, 2]

修正说明

  1. 新增const command = commands[i],正确提取每个循环对应的命令,解决索引与字符串不匹配的问题。
  2. 将独立if改为else if,减少不必要的条件判断(不影响功能,但更高效)。
  3. 返回由更新后的x、y组成的新数组,替代原始输入数组,确保结果正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:44:52