.toSorted() 仅在浏览器中有效

问题描述 投票:0回答:2

我正在处理 LeetCode 问题,我想将一个变量分配给数组的排序副本。

sortedHeights = heights.toSorted()

但是,这会返回以下错误

heights.toSorted is not a function
。 我在MDN上查找了这个问题,发现了以下代码片段:

const months = ["Mar", "Jan", "Feb", "Dec"];
const sortedMonths = months.toSorted();
console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar']
console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec']

我也尝试在 WebStorm 上运行此代码片段,但我遇到了同样的错误,但是,当我在浏览器中运行它时,它可以正常工作。这是为什么?

javascript browser
2个回答
2
投票

.toSorted()
是一种新方法。正如您在链接的 MDN 文档中看到的那样,node.js 还不支持它。


0
投票

首先,重要的是要注意,对数组进行排序涉及根据某些条件以特定顺序排列其元素。在这种情况下,条件是字母的索引,其中每个字母都被赋予一个数值,例如 A 被赋予值 1,B 被赋予值 2。

要实现这种排序,您可以使用一个名为

toSorted()
的函数,它根据索引排列数组元素。给定输入数组的预期输出为:

[    "Dec",    "Feb",    "Jan",    "Mar"]

为此,您可以使用常量数组 months,其中包含一年中所有十二个月的名称。通过这样做,您可以访问数组中每个月的索引,使您能够根据所需的条件对数组进行排序。

const months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
© www.soinside.com 2019 - 2024. All rights reserved.