gpt4 book ai didi

javascript - ReverseArrayInPlace 奇怪的错误?

转载 作者:行者123 更新时间:2023-11-30 16:22:49 25 4
gpt4 key购买 nike

我正在阅读这本 Eloquent 书,做了一个小作业,遇到了一些我无法真正弄清楚的事情。为什么 return 给出了一个答案而 console.log 给出了不同的答案?

function reverseArrayInPlace(r){
var z = [];
for(var c = (r.length)-1;c>=0;c--){
z.push(r[c]);
}
console.log(z);
return z;
}


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

结果:

[5, 4, 3, 2, 1] <- console.log(z)

[1, 2, 3, 4, 5] <- 返回 z

最佳答案

您不是在原地 反转数组。您正在创建一个由 reverseArrayInPlace

返回的新数组

编辑:解决方案

不是创建一个新数组并返回它,而是简单地将原始数组的内容替换为您在函数末尾使用此行反转的数组:

r.splice.apply(r,[0,r.length].concat(z))

此行删除数组 r 中的所有元素,并将它们替换为数组 z 中的所有元素,然后您可以简单地返回 r

function reverseArrayInPlace(r){
var z = [];
for(var c = (r.length)-1;c>=0;c--){
z.push(r[c]);
}
console.log(z);
r.splice.apply(r,[0,r.length].concat(z));
return r;
}


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

关于javascript - ReverseArrayInPlace 奇怪的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34502920/

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