Функция, которая меняет местами первый и последний элемент массива
Нужно реализовать функцию, которая меняет местами первый и последний элемент массива, но чтобы если массив состоит меньше, чем из двух элементов, он возвращался так как есть. Моя функция, к сожалению не работает( i это последнее число в массиве
export function swap (massive) {
for (let i = 0; i = massive.length - 1; i++) {
let temp1;
if (massive.length > 1) {
temp1 = massive[0];
massive[0] = massive[i];
massive[i] = temp1;
return massive;
}
else {
return massive;
}
}
}
Ответы (4 шт):
а зачем вам цикл?
for (let i = 0; i = massive.length - 1; i++)
вам же надо поменять только 1 и последнее значение, т.е.
tmp = massive[0];
massive[0] = massive[massive.length - 1];
massive[massive.length - 1] = tmp;
кроме того посмотрите на свой цикл и потом прочитайте про циклы в javascript
for (начальные условия; условие продолжения цикла; действия после каждого этапа)
у вас условие продолжение цикла
i = massive.length - 1
учитывая, что изначально i == 0, то условие никогда выполняться не будет и цикл не будет выполняться
Да и вообще у вас мешанина кода, у вас должно быть так:
if (massive.length > 1) {
// меняем местами
}
return massive;
и все
P.S.
перед тем как кодить алгоритм удобно его разобрать "на бумаге" по этапам, что каждый этап делает
тогда таких ошибок возникать будет меньше
Цикл вообще здесь не нужен, так же как и не нужен else, кроме прочего функция дает Undifind значение когда массив на вход состоит только из одного значение..
Конечное решение будет такое:
export function swap(massive) {
if (massive.length < 2) {
return massive;
}
let tmp = massive[0];
array[0] = massive[massive.length-1];
array[massive.length-1] = tmp;
return massive;
}
const arr = ['one', 'two', 'three', 'four'];
// Массив [arr] как примем, значение может быть любым
const swap = (arr) => {
// условие (если массив содержит 2 и более элементов)
if (arr.length > 1) {
// Переменная которая хранит первое значение массива
let firstCount = arr[0];
// Переменная которая хранит последнее значение массива
let lastCount = arr[arr.length - 1];
// Присваивание результату - значение массива [arr]
result = arr;
// Меняем местами первый и последний элемент массива
result[result.length - 1] = firstCount;
result[0] = lastCount;
// Благодаря значениям переменных
return result
// Выводим результат
} else {
// Дефолтное значение (если массив пустой или значение < 1)
return arr
// Вернуть массив arr
}
}
const swap = (array) => {
const firstCount = array[0];
if (array.length >= 1) {
array[0] = array[array.length - 1];
array[array.length - 1] = firstCount;
}
return array;
};