javascript .toSorted()仅在浏览器中工作

9wbgstp7  于 2023-04-19  发布在  Java
关注(0)|答案(2)|浏览(159)

我正在处理一个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上运行这个代码片段,也得到了同样的错误,但是,当我在浏览器中运行它时,它可以正常工作。为什么呢?

f0ofjuux

f0ofjuux1#

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

k7fdbhmy

k7fdbhmy2#

首先,要注意的是,对数组进行排序涉及到根据某些标准以特定顺序排列其元素。在本例中,标准是字母的索引,其中每个字母都被分配一个数值,例如A被分配值1,B被分配值2。
要实现这种排序,可以使用一个名为toSorted()的函数,该函数根据数组元素的索引排列它们。给定输入数组的预期输出为:

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

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

const months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

相关问题