Как изменить переданную аргумент?

Рейтинг: 0Ответов: 2Опубликовано: 13.05.2023

Хотелось бы чтобы функция изменил переданный аргумент к функции.

Например:

console.log(reverseArray(["A", "B", "C"]));
// ["C", "B", "A"];

var arrayValue = [1, 2, 3, 4, 5];

reverseArrayInPlace(arrayValue);

console.log(arrayValue);
// [5, 4, 3, 2, 1]

Ответы

▲ 2

Для этого есть встроенная функция в JavaScript.

Функция, которая будет возвращать перевёрнутый массив:

function reverseArray(array) {
    return array.reverse();
}

Использовать её можно так:

function reverseArray(array) {
    return array.reverse();
}

console.log(reverseArray(["A", "B", "C"]));
// ["C", "B", "A"];

let arrayValue = [1, 2, 3, 4, 5];
arrayValue = reverseArray(arrayValue);

console.log(arrayValue);
// [5, 4, 3, 2, 1]

let someSwappedArray = reverseArray(["H", "e", "l", "l", "o", "!"]);

console.log(someSwappedArray);
// ["!", "o", "l", "l", "e", "H"]

Но я не вижу особого смысла использовать функцию, так как существует встроенная функция в JavaScript array.reverse.

Пример с array.reverse:

console.log(["A", "B", "C"].reverse()); // тут
// ["C", "B", "A"];

var arrayValue = [1, 2, 3, 4, 5];

arrayValue = arrayValue.reverse(); // и тут

console.log(arrayValue);
// [5, 4, 3, 2, 1]


Замечание.

Функции в JavaScript не могут принимать переменную в качестве аргумента, а потом изменять её в глобальной области видимости, из закрытой области видимости.

Поэтому, в вашем примере кода, если просто скопировать мою функцию и запустить с вашим кодом, второй пример работать не будет.

Поэтому, чтобы заработало, нужно заменить строку в вашем коде:

reverseArray(arrayValue);

на:

arrayValue = reverseArray(arrayValue);

Также, надо:

  • либо изменить название функции при объявлении с reverseArray на reverseArrayInPlace
  • либо везде заменить в вашем коде reverseArrayInPlace(...) на reverseArray(...) (я рекомендую так сделать)

В вашем коде не очень корректное название функции, поэтому я назвал функцию не reverseArrayInPlace, а просто reverseArray.


Всё это мнение с именем функции ИМХО, вы просто можете скопировать функцию со своим именем, и не изменять:

function reverseArrayInPlace(array) {
    return array.reverse();
}

и дальше уже вставлять свой код.


Если что-то непонятно, задавайте вопрос, буду рад помочь снова.

▲ 0

function reverseArrayInPlace(list) {
 return list.reverse();
}

console.log(reverseArrayInPlace([1,2,3]))