Javascript 无法调用JS函数:语法错误或眼睛交叉?
首先祝你节日快乐。 在这个Javascript练习中,我找不到调用带有相对顺序的“commands”函数失败的原因。我把{}搞砸了吗 ////月球车的目标在这里////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
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语句,但没有关闭函数
节日快乐