gpt4 book ai didi

javascript - 副作用/更改传递给函数的全局变量

转载 作者:行者123 更新时间:2023-11-28 19:21:20 28 4
gpt4 key购买 nike

如果有人问过这个问题,请原谅我,但我似乎找不到它。

我正在尝试创建一个数组并反转它(不使用反转)这段代码完美运行:

function reverseArrayInPlace(array) {
for (var i = 0; i < Math.floor(array.length / 2); i++) {
var old = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = old;
}
return array;
}


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

如您所见,它接受一个数组,执行一些逻辑,并返回相同的更改后的数组

尽管如此,我不明白为什么这段代码不起作用:

var some_array = [6,7,8,9,10];

function reverseArrayInPlace(array) {
var replacement_array = [];
for (var i = 0; i < some_array.length; i++)
replacement_array.unshift(array[i])
array = replacement_array;
return array;
}

reverseArrayInPlace(some_array);
console.log(some_array);
// → [ 6, 7, 8, 9, 10 ]

此代码还接受一个数组,执行一些逻辑(和赋值)并返回一个数组。为什么它不像第一个那样改变全局变量?有什么办法可以改变它吗?

最佳答案

好的,你需要这个:

function reverseArrayInPlace(array) {
replacement_array = [];
for (var i = 0; i <array.length; i++)
{
replacement_array.unshift(array[i])

}
for(var i = 0; i <array.length; i++){
array[i]=replacement_array[i]
}
return array;
}
some_array = [6,7,8,9,10];
reverseArrayInPlace(some_array)
console.log(some_array)

替换变量的内容即可。

关于javascript - 副作用/更改传递给函数的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28825237/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com