Как изменить переданную аргумент?
Хотелось бы чтобы функция изменил переданный аргумент к функции.
Например:
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 шт):
function reverseArrayInPlace(list) {
return list.reverse();
}
console.log(reverseArrayInPlace([1,2,3]))
Для этого есть встроенная функция в 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();
}
и дальше уже вставлять свой код.
Если что-то непонятно, задавайте вопрос, буду рад помочь снова.