æ°ç»å»é
arr æ¯ä¸ä¸ªæ°ç»ã
å建ä¸ä¸ªå½æ° unique(arr)ï¼è¿åå»é¤éå¤å
ç´ åçæ°ç» arrã
ä¾å¦ï¼
function unique(arr) {
/* your code */
}
let strings = ["Hare", "Krishna", "Hare", "Krishna",
"Krishna", "Krishna", "Hare", "Hare", ":-O"
];
alert( unique(strings) ); // Hare, Krishna, :-O
让æä»¬å éåæ°åï¼
- å¯¹äºæ¯ä¸ªå ç´ ï¼æä»¬å°æ£æ¥ç»ææ°ç»æ¯å¦å·²ç»æè¯¥å ç´ ã
- 妿æï¼å忽ç¥ï¼å¦åå°å ¶æ·»å å°ç»æä¸ã
function unique(arr) {
let result = [];
for (let str of arr) {
if (!result.includes(str)) {
result.push(str);
}
}
return result;
}
let strings = ["Hare", "Krishna", "Hare", "Krishna",
"Krishna", "Krishna", "Hare", "Hare", ":-O"
];
alert( unique(strings) ); // Hare, Krishna, :-O
ä»£ç ææï¼ä½å ¶ä¸å卿½å¨çæ§è½é®é¢ã
æ¹æ³ result.includes(str) å¨å
é¨éåæ°ç» resultï¼å¹¶å°æ¯ä¸ªå
ç´ ä¸ str è¿è¡æ¯è¾ä»¥æ¾å°å¹é
项ã
æä»¥å¦æ result 䏿 100 个å
ç´ ï¼å¹¶ä¸æ²¡æä»»ä½ä¸é¡¹ä¸ str å¹é
ï¼é£ä¹å®å°éåæ´ä¸ª result å¹¶è¿è¡ 100 次æ¯è¾ã妿 result å¾å¤§ï¼æ¯å¦ 10000ï¼é£ä¹å°±ä¼æ 10000 æ¬¡çæ¯è¾ã
è¿æ¬èº«å¹¶ä¸æ¯é®é¢ï¼å 为 JavaScript 弿é度éå¸¸å¿«ï¼æä»¥éåä¸ä¸ªæ 10000 个å
ç´ çæ°ç»åªéè¦å å¾®ç§ã
使¯æä»¬å¨ for循ç¯ä¸å¯¹ arr çæ¯ä¸ªå
ç´ é½è¿è¡äºä¸æ¬¡æ£æµã
å æ¤ï¼å¦æ arr.length æ¯ 10000ï¼æä»¬ä¼æ 10000 * 10000 = 1 äº¿æ¬¡çæ¯è¾ãé£çç太å¤äºã
æä»¥è¯¥è§£å³æ¹æ¡ä» éç¨äºå°åæ°ç»ã
è¿ä¸æ¥ï¼å¨åé¢ç Map and Setï¼æ å°åéåï¼ ä¸ç« ä¸ï¼æä»¬å°çå°å¦ä½å¯¹è¯¥æ¹æ³è¿è¡ä¼åã