javascript - 排序函数正在更改我未排序的变量

标签 javascript

嘿伙计们,我在排序函数上遇到了问题,正如您所看到的,我创建了一个名为 newSiteArr 的数组,并且创建了一个名为 orderd 的变量等于它,然后对有序变量进行排序,但随后我创建了一个新变量 xyorderd = to orderd 并反向排序,然后当我 console.log newSiteArr[0] 时,它给我的值是 8 而不是其原始值 0,这看起来很奇怪,因为我没有对 newSiteArr 和 orderd[ 进行任何排序当我按从低到高的顺序对它进行排序时,[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]);

最佳答案

.sort 对数组进行就地排序 - 它不会返回新数组。而且,仅分配它并不会复制数组。

关于javascript - 排序函数正在更改我未排序的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50955306/

相关文章:

javascript - 是否存在一种让爬虫忽略部分文档的方法?

javascript - node.js,bluebird,执行路径控制不好

javascript - 使用应用程序脚本从谷歌表格生成JS文件

javascript - 在 Javascript 中按下按钮时将元素添加到列表

Javascript:如何调用外部网站的函数?

Javascript,计算后出现结论

javascript - 测试一个简单的组件在使用 JEST 被 withFormik() 包装时呈现

javascript - 如何从rails2中的select标签中获取值?

javascript - jquery show () 在关闭面板后不起作用

JavaScript 未在 Ruby on Rails 中运行