JavaScript的sort方法,在对对象数组进行排序的时候,为什么会影响到之前的代码?

题目描述

对一个对象数组进行排序,使用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中看到的结果如下
JavaScript的sort方法,在对对象数组进行排序的时候,为什么会影响到之前的代码?

回答

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

你说的是这个问题把https://blog.csdn.net/extendworld/article/details/82709777

以上是 JavaScript的sort方法,在对对象数组进行排序的时候,为什么会影响到之前的代码? 的全部内容, 来源链接: utcz.com/a/59302.html

回到顶部