У меня есть две функции. Одна из них - нечистая функция, которая просто возвращает результат другого. Меня смущает несоответствие результатов между двумя разными способами его вызова.возвращающий результат одной функции внутри другой дает неверный результат
Функции:
function reverseArray(array) {
var newArray = [];
for(i = 0; i < array.length; i++) {
newArray.unshift(array[i]);
}
return newArray;
}
function reverseArrayInPlace(array) {
return reverseArray(array);
}
Когда я называю:
console.log(reverseArrayInPlace(["one", "two"]));
Console показывает, что я ожидаю, что: ["two", "one"]
Но когда я присвоить массив переменной, передать его в качестве аргумента и для входа в консоль, например:
var foo = ["one", "two"];
reverseArrayInPlace(foo);
console.log(foo);
Я получаю ["one", "two"]
Почему последняя ситуация дает другой результат, чем первый?
Пожалуйста, подтвердите, что «JavaScript» является язык, который вы заинтересованы, как и большинство языков поддерживают функции и массивы и поведение кода зависит от языка, который вы выбрали. –
Да, JavaScript был языком, который меня интересовал @AlexeiLevenkov – sabaeus