我正在处理一个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上运行这个代码片段,也得到了同样的错误,但是,当我在浏览器中运行它时,它可以正常工作。为什么呢?
2条答案
按热度按时间f0ofjuux1#
.toSorted()
是一个新方法。正如你在链接的MDN文档中看到的,它在node.js中还不支持。k7fdbhmy2#
首先,要注意的是,对数组进行排序涉及到根据某些标准以特定顺序排列其元素。在本例中,标准是字母的索引,其中每个字母都被分配一个数值,例如A被分配值1,B被分配值2。
要实现这种排序,可以使用一个名为
toSorted()
的函数,该函数根据数组元素的索引排列它们。给定输入数组的预期输出为:要实现这一点,您可以使用一个常量数组months,它包含一年中所有12个月的名称。通过这样做,您可以访问数组中每个月的索引,使您能够根据所需的条件对数组进行排序。