gpt4 book ai didi

javascript - 临时变量未存储在 Javascript 中

转载 作者:行者123 更新时间:2023-11-30 16:13:56 27 4
gpt4 key购买 nike

我正在构建一个排序算法(Selection Sort)并且已经能够完成。但是,如果我想添加一个临时变量,它存储未排序的数组,它似乎会立即更改为已排序的数组:

 var A = [-8, 1, 77, -99, 3, 5];
function findMin(A,startIndex,endIndex) {
var temp = startIndex;
for(var x = startIndex; x <= endIndex; x++){


if(A[temp] > A[x]) {

temp = x;

}

}
return temp;
}
function swapNumbers(A, index1, index2) {
var temp_2 = A[index1];
A[index1] = A[index2];
A[index2] = temp_2;

return A;
}

function sort(A) {
var endofArray = A.length - 1;
var temp3 = A;
var Asorted = [];
for(var i = 0; i < A.length; i++) {
swapNumbers(A, i, findMin(A, i, endofArray));

}
Asorted = A;
console.log("The unsorted array was " + "[" + temp3 + "]"
+ "." + " The sorted array is " + "[" + Asorted + "]" + ".");
return Asorted; /*subsitute return for
console.log() to display results*/
}
sort(A);

console.log 中的 temp3("The unsorted array was "+ "["+ temp3 + "]" +“。” + "排序后的数组是 "+ "["+ Asorted + "]"+ "."); 好像输出:

未排序的数组是 [-99,-8,1,3,5,77]。排序后的数组是 [-99,-8,1,3,5,77]。

代替:

未排序的数组是 [-8, 1, 77, -99, 3, 5]。排序后的数组是 [-99,-8,1,3,5,77]。

请告知我的错误。 `

最佳答案

当你将 temp3 赋给 A 时,你基本上只是指向内存中的 A 数组,而不是实际复制数组。尝试:

var temp3 = A.slice();

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

关于javascript - 临时变量未存储在 Javascript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35800947/

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