为何HackerRank平台无法使用JavaScript的.toSorted()方法?
为什么HackerRank中无法使用
toSorted()方法? 核心原因是toSorted()是ES2023(ECMAScript 2023)才新增的数组方法,而HackerRank当前使用的JavaScript运行环境(通常是Node.js)版本较低,还未支持这个新特性,所以调用时会触发“方法未定义”的报错。
你改用的[...arr].sort(...)能成功运行,是因为:
sort()是ES3就存在的老牌数组方法,兼容性覆盖几乎所有现代JavaScript环境;- 扩展运算符
[...arr]是ES6特性,HackerRank的环境已经支持,它会创建一个原数组的浅拷贝,之后对拷贝数组调用sort()(原地排序),既不会修改原数组,又能兼容低版本运行环境。
另外,你也可以用arr.slice().sort(...)替代扩展运算符,效果完全一致,同样是先复制数组再排序,避免修改原数组。
内容的提问来源于stack exchange,提问作者Joseph Etim
相关产品推荐
相关产品推荐

