JavaScript 使用 console.log 方法打印数组后,对数组重新排序,先前打印的结果也排序了?

发布于 2022-09-12 12:58:09 字数 686 浏览 24 评论 0

题目描述

对一个数组进行排序,使用 sort 方法,在执行 sort 方法前后分别使用console.log方法输出该数组,发现 sort 方法前后输出的都是排序之后的数组。

题目来源及自己的思路

题目来自于日常开发,怀疑是js执行顺序的问题。

相关代码

粘贴代码文本(请勿用截图)

const list = [{sort: 1}, {sort: 2}, {sort: 3}];
console.log(list);
list.sort((a, b) =>  b.sort - a.sort);
console.log(list);

你期待的结果是什么?实际看到的错误信息又是什么?

期待的结果是:
第一次输出的是排序前的数组——

[{sort: 1}, {sort: 2}, {sort: 3}]

第二次输出的是排序后的数组——

[{sort: 3}, {sort: 2}, {sort: 1}]


在chrome中看到的实际结果却是:
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦罢 2022-09-19 12:58:09

标准如此。
用原地算法对原数组排序,不进行复制。
(大概是考虑到数组很长的情况下,省内存)。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文