javascript - 多次 array.sort 后数组顺序发生变化

标签 javascript arrays sorting variables

我有一个对数组进行排序的代码

const timeSorted = wheater.list.sort((z,x)=>
{
    return z.dt- x.dt
})
console.log(timeSorted)

我得到的输出已排序
但如果我添加另一种这样的排序

const timeSorted = wheater.list.sort((z,x)=>
{
    return z.dt- x.dt
})
const tempSorted = wheater.list.sort((a,b)=>
{
    return a.main.temp - b.main.temp
})
console.log(timeSorted)

const timeSorted 变为 tempSorted

我该如何解决这个问题?

最佳答案

数组已按原位排序。

为了不更改它,您需要使用 oldArray.slice() 创建先前数组的副本。

const tempSorted = wheater.list.slice().sort((a,b)=>
{
    return a.main.temp - b.main.temp
})

关于javascript - 多次 array.sort 后数组顺序发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47868148/

相关文章:

javascript - Next.js - 如何将 id 从查询传递到 getInitialProps 函数

javascript - Javascript OOP 中的未知未定义

arrays - 在 scala 中按字母顺序对字符串数组进行排序

javascript - angularjs 在 ng-repeat 指令中预填充输入文本

javascript - 将元素移动到右侧然后返回到左侧

javascript - 我得到 [1,15],而不是 [1,0,15]。 JavaScript 过滤器

java - 连接两个字节数组的简单方法

javascript - 从数组创建动态对象树

java - 如何对两个字符串数组进行排序

java - 无法比较用户定义的对象进行排序 (Java 8)