为何Array.toSorted()在浏览器可运行,在WebStorm及LeetCode环境报错?
为什么
toSorted()在LeetCode和WebStorm中报错? 核心原因:运行环境不支持ES2023新API
Array.prototype.toSorted()是ES2023才新增的数组方法,作用是返回原数组的排序副本且不修改原数组。目前主流现代浏览器已经支持该API,但LeetCode的执行环境、WebStorm默认使用的Node.js版本(低于v20.0.0)还未适配这个新方法,因此会抛出heights.toSorted is not a function的错误。兼容旧环境的替代写法
要实现相同的“获取排序副本”效果,可使用传统的slice()+sort()组合:
// 数字数组升序排序 sortedHeights = heights.slice().sort((a, b) => a - b); // 字符串数组按字典序排序 sortedHeights = heights.slice().sort();
slice()无参调用会生成原数组的浅拷贝,后续对拷贝数组执行sort()不会影响原数组,效果和toSorted()完全一致。
内容的提问来源于stack exchange,提问作者Michael Knightly
相关产品推荐
相关产品推荐

