伙计们,我在排序功能上遇到了问题,如您所见,我创建了一个名为newSiteArr的数组,并创建了一个名为ordered equals的变量,然后对排序后的变量进行排序,但随后又创建了一个新变量xyorderd =有序和反向排序,然后当我console.log newSiteArr [0]时,它给我的值为8而不是其原始值0,这似乎很奇怪,因为我没有对newSiteArr进行任何排序,也没有排序[ [0]变量按从低到高的顺序排序时返回8。
请有人能帮助我了解发生了什么,为什么会发生这种情况,这对我来说似乎是个错误,因为如果我什么都没做,为什么会更改newSiteArr?
const newSiteArr = [0, 4, 2, 5, 2, 5, 6, 7, 8, 1];
var orderd = newSiteArr;
console.log(newSiteArr[0]);
orderd.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(newSiteArr[0]);
var xyorderd = orderd.sort(function(a, b) {
if (a < b) {
return 1;
} else {
return -1;
}
});
// logs the value 8 when i am not sorting it
console.log(newSiteArr[0]);
console.log(xyorderd[0]);
// logs the value 8 when i havent sorted it in reverse
console.log(orderd[0]);
答案 0 :(得分:2)
.sort
对数组进行排序-它不会返回新数组。同样,仅分配它不会复制该数组。