Javascript 无法调用JS函数:语法错误或眼睛交叉?

Javascript 无法调用JS函数:语法错误或眼睛交叉?,javascript,function,switch-statement,invoke,console.log,Javascript,Function,Switch Statement,Invoke,Console.log,首先祝你节日快乐。 在这个Javascript练习中,我找不到调用带有相对顺序的“commands”函数失败的原因。我把{}搞砸了吗 ////月球车的目标在这里//// const rover = { direction: "N", x: 5, y: 5, travelLog: [] }; // ======================== //// Rover turns left switch case //// function turnLef

首先祝你节日快乐。 在这个Javascript练习中,我找不到调用带有相对顺序的“commands”函数失败的原因。我把{}搞砸了吗

////月球车的目标在这里////

const rover = {
  direction: "N",
  x: 5,
  y: 5,
  travelLog: []
};

// ========================

//// Rover turns left switch case ////

function turnLeft(rover) {
  switch (rover.direction) {
    case "N":
      rover.direction = "W";
      break;
    case "W":
      rover.direction = "S";
      break;
    case "S":
      rover.direction = "E";
      break;
    case "E":
      rover.direction = "N";
      break;
  }
  console.log("turnLeft was called!");
  console.log(`Rover has now direction:"${rover.direction}"`);
}

//// Rover turns right switch case ////

function turnRight(rover) {
  switch (rover.direction) {
    case "N":
      rover.direction = "E";
      break;
    case "W":
      rover.direction = "N";
      break;
    case "S":
      rover.direction = "W";
      break;
    case "E":
      rover.direction = "S";
      break;
  }
  console.log("turnRight was called!");
  console.log(`Rover has now direction:"${rover.direction}"`);
}

//// Moving the rover ////

function moveForward(rover) {
  console.log("moveForward was called!");
  let newPosition = { x: rover.x, y: rover.y };
  rover.travelLog.push(newPosition);

  switch (rover.direction) {
    case "N":
      if (rover.y <= 0) {
        console.log("you can't travel out there, bud");
      } else {
        rover.y--;
        console.log(
          `Rover moved North: position is now: ${rover.x} , ${rover.y}`
        );
      }
      break;

    case "E":
      if (rover.x >= 9) {
        console.log("you can't travel out there, bud");
      } else {
        rover.x++;
        console.log(
          `Rover moved East: position is now: ${rover.x} , ${rover.y}`
        );
      }
      break;

    case "S":
      if (rover.y >= 9) {
        console.log("you can't travel out there, bud");
      } else {
        rover.y++;
        console.log(
          `Rover moved South: position is now: ${rover.x} , ${rover.y}`
        );
      }
      break;

    case "W":
      if (rover.x <= 0) {
        console.log("you can't travel out there, bud");
      } else {
        rover.x--;
        console.log(
          `Rover moved West: position is now: ${rover.x} , ${rover.y}`
        );
      }
      break;
  }
}

//move backward//

function moveBackward(rover) {
  console.log("moveBackward was called!");
  let newPosition = { x: rover.x, y: rover.y };
  rover.travelLog.push(newPosition);

  switch (rover.direction) {
    case "N": // Rover is facing North, but it will take one step backwards, hence direction South //
      if (rover.y >= 9) {
        console.log("watch your steps, don't trip");
      } else {
        rover.y++;
        console.log(
          `Rover moonwalked South: position is now: ${rover.x} , ${rover.y}`
        );
      }
      break;

    case "E": //moving direction South
      if (rover.x <= 0) {
        console.log("watch your steps, don't trip");
      } else {
        rover.x--;
        console.log(
          `Rover moonwalked West: position is now: ${rover.x} , ${rover.y}`
        );
      }
      break;

    case "S": // direction North
      if (rover.y <= 0) {
        console.log("watch your steps,don't trip");
      } else {
        rover.y--;
        console.log(
          `Rover moonwalked North: position is now: ${rover.x} , ${rover.y}`
        );
      }
      break;

    case "W": //direction East
      if (rover.x >= 9) {
        console.log("watch your steps, don't trip");
      } else {
        rover.x++;
        console.log(
          `Rover moonwalked East: position is now: ${rover.x} , ${rover.y}`
        );
      }
      break;
  }

  //// Assigning commands ////

  function commands(rover, orders) {
    for (let i = 0; i < orders.length; i++) {
      let order = orders[i];
      switch (order) {
        case "f":
          moveForward(rover, order);
          break;
        case "b":
          moveBackward(rover, order);
          break;
        case "r":
          turnRight(rover, order);
          break;
        case "l":
          turnLeft(rover, order);
          break;
        default:
          console.log("Please use only 'r', 'f', 'b' or 'l'");
      }
    } 
  }

commands(rover,"ffbrl");

  
////printout all the rover's movements////

/*
for (let i = 0; i < rover.travelLog.length; i++) {
console.log(`Path ${i} ==> x=${rover.travelLog[i].x}, y=${rover.travelLog[i].y}`);
} 
*/
}
const-rover={
方向:“N”,
x:5,
y:5,
旅行日志:[]
};
// ========================
////罗孚左转开关箱////
功能左转(罗孚){
开关(探测车方向){
案例“N”:
rover.direction=“W”;
打破
案例“W”:
rover.direction=“S”;
打破
案例“S”:
rover.direction=“E”;
打破
案例“E”:
rover.direction=“N”;
打破
}
log(“叫左转!”);
log(`Rover现在有方向:${Rover.direction}`);
}
////路虎右转开关箱////
功能右转(罗孚){
开关(探测车方向){
案例“N”:
rover.direction=“E”;
打破
案例“W”:
rover.direction=“N”;
打破
案例“S”:
rover.direction=“W”;
打破
案例“E”:
rover.direction=“S”;
打破
}
log(“调用了turnRight!”);
log(`Rover现在有方向:${Rover.direction}`);
}
////移动漫游者////
功能向前移动(漫游者){
log(“调用了moveForward!”);
设newPosition={x:rover.x,y:rover.y};
漫游者、旅行日志、推送(新位置);
开关(探测车方向){
案例“N”:
如果(月球车y=9){
log(“你不能出去旅行,巴德”);
}否则{
x++;
console.log(
`漫游者向东移动:位置现在是:${Rover.x},${Rover.y}`
);
}
打破
案例“S”:
如果(月球车y>=9){
log(“你不能出去旅行,巴德”);
}否则{
y++;
console.log(
`月球车向南移动:位置现在是:${Rover.x},${Rover.y}`
);
}
打破
案例“W”:
如果(月球车x=9){
log(“注意脚下,不要绊倒”);
}否则{
y++;
console.log(
`月球车向南行走:位置现在是:${Rover.x},${Rover.y}`
);
}
打破
案例“E”://向南移动

如果(rover.x您需要在
moveBackward
函数末尾再加一个关闭括号
}
。您关闭了switch语句,但没有关闭函数


节日快乐!

您需要在
向后移动
函数末尾再加一个右大括号
。您关闭了switch语句,但没有关闭函数

节日快乐