Задача по js
Добрый день! Прошу объяснить или помочь решить данную задачу.
Наш робот умеет преобразовывать команды движения в правильный сигнал и двигаться в соответствии с ним: 'forward' означает y + 1 'back' означает y - 1 'right' означает x + 1 'left' означает x - 1 Было бы здорово, чтобы робот знал, где он сейчас находится даже без GPS. Напишите функцию getLocation, которая принимает массив начальных координат coordinates (в виде [x, y]) и массив истории команд commands. Функция должна возвращать массив конечных координат робота в том же формате ([x, y]) после движений согласно командам из commands. Например: coordinates = [2, 1] commands = ['left', 'back', 'back'] Координаты после первой команды: [1, 1] // 1 шаг влево Координаты после второй команды: [1, 0] // 1 шаг назад Координаты после третьей команды: [1, -1] // 1 шаг назад Результатом будет [1, -1] Вот мой нерабочий код : function getLocation(coordinates, commands) { let x = coordinates[0]; let y = coordinates[1]; for(let i = 1; i < commands.length; i++){ if(commands[i] === 'forward'){ y += coordinates[1] + 1 ; } if(commands[i] === 'back'){ y += coordinates[1] - 1; } if(commands[i] === 'right'){ x += coordinates[0] + 1 ; } if(commands[i] === 'left'){ x += coordinates[0] - 1; } } return [x, y] } |
marishka88,
зачем плодить тему, и зачем вы всунули лишнее в прежний почти рабочий код? уберите лишнее из строк 7, 11, 15, 19 |
marishka88,
function getLocation(coordinates, commands) { let [x, y] = coordinates; for (let command of commands) { if (command === 'forward') { y++; //y += 1 } if (command === 'back') { y--; //y -= 1 } if (command === 'right') { x++; //x += 1 } if (command === 'left') { x--; // x -= 1 } } return [x, y] } let coordinates = [2, 1], commands = ['left', 'back', 'back'] alert(getLocation(coordinates, commands)); |
Спасибо!
|
Часовой пояс GMT +3, время: 15:19. |