Baseline 2023
Newly available
Array
å®ä¾ç toSorted()
æ¹æ³æ¯ sort()
æ¹æ³çå¤å¶æ¹æ³çæ¬ãå®è¿åä¸ä¸ªæ°æ°ç»ï¼å
¶å
ç´ æååºæåã
// ä¸ä¼ å
¥å½æ°
toSorted()
// ä¼ å
¥ç®å¤´å½æ°
toSorted((a, b) => { /* ⦠*/ })
// ä¼ å
¥æ¯è¾å½æ°
toSorted(compareFn)
// å
§èæ¯è¾å½æ°
toSorted(function compareFn(a, b) { /* ⦠*/ })
åæ°
compareFn
å¯é
æå®ä¸ä¸ªå®ä¹æåºé¡ºåºç彿°ã妿çç¥ï¼åå°æ°ç»å ç´ è½¬æ¢ä¸ºå符串ï¼ç¶åæ ¹æ®æ¯ä¸ªå符ç Unicode ç ä½å¼è¿è¡æåºã
a
ç¨äºæ¯è¾ç第ä¸ä¸ªå ç´ ã
b
ç¨äºæ¯è¾ç第äºä¸ªå ç´ ã
ä¸ä¸ªæ°æ°ç»ï¼å ¶å ç´ æååºæåºã
æè¿°æå
³ compareFn
åæ°çæ´å¤ä¿¡æ¯ï¼è¯·åé
sort()
ã
å½å¨ç¨çæ°ç»ä¸ä½¿ç¨ toSorted()
æ¹æ³æ¶ï¼å®è¿ä»£æ¶ä¼å°ç©ºæ§½è§ä¸ºå
·æ undefined
å¼çå
ç´ ã
toSorted()
æ¹æ³æ¯éç¨çï¼å®åªææ this
å¼å
·æ length
屿§åæ´æ°é®å±æ§ã
const months = ["Mar", "Jan", "Feb", "Dec"];
const sortedMonths = months.toSorted();
console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar']
console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec']
const values = [1, 10, 21, 2];
const sortedValues = values.toSorted((a, b) => a - b);
console.log(sortedValues); // [1, 2, 10, 21]
console.log(values); // [1, 10, 21, 2]
æå
³æ´å¤ç¨æ³ç¤ºä¾ï¼è¯·åè§ sort()
ã
空槽被è§ä¸ºå
·æ undefined
å¼è被æåºãå®ä»¬æ»æ¯æåºå°æ°ç»çæ«å°¾ï¼å¹¶ä¸ compareFn
ä¸ä¼å¯¹å®ä»¬è¿è¡è°ç¨ã
console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined]
console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined]
å¨éæ°ç»å¯¹è±¡ä¸è°ç¨ toSorted()
toSorted()
æ¹æ³ä¼è¯»å this
ç length
屿§ãç¶åå®ä¼æ¶éææå¨ 0
å° length - 1
èå´å
çæ´æ°é®å±æ§ï¼å¯¹å®ä»¬è¿è¡æåºå¹¶å°å®ä»¬åå
¥ä¸ä¸ªæ°çæ°ç»ä¸ã
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
};
console.log(Array.prototype.toSorted.call(arrayLike));
// [4, 5, undefined]
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4