عضÙÙØ§Û ÛÚ©ØªØ§Û Ø¢Ø±Ø§Û٠را جدا Ú©ÙÛØ¯
ÙØ±Ø¶ Ú©ÙÛÙ
Ú©Ù arr ÛÚ© آراÛ٠است.
تابع unique(arr) را بÙÙÛØ³Ûد ک٠آراÛÙâØ§Û Ø´Ø§Ù
٠اÙÙ
اÙâÙØ§Û ÛÚ©ØªØ§Û arr را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
function unique(arr) {
/* کد Ø´Ù
ا */
}
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 Ù
ÙØ§Ûس٠Ù
ÛâÚ©ÙØ¯ تا اÙÙ
ا٠Ù
ÙØ±Ø¯ ÙØ¸Ø± را Ù¾ÛØ¯Ø§ Ú©ÙØ¯.
ÛÙØ§Ø¨Ø±Ø§Û٠اگر 100 اÙÙ
ا٠درÙÙ result ÙØ¬Ùد داشت٠باشد Ù ÙÛÚ Ú©Ø¯Ø§Ù
با str برابر ÙØ¨Ø§Ø´Ø¯Ø سپس تÙ
اÙ
result را Ø¨Ø±Ø±Ø³Û Ù
ÛâÚ©ÙØ¯ ٠دÙÛÙØ§ 100 Ù
ÙØ§ÛØ³Ù Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯ÙØ¯. ٠اگر result بزرگ Ø¨Ø§Ø´Ø¯Ø Ù
Ø«ÙØ§ 10000Ø Ø³Ù¾Ø³ ب٠تعداد 10000 Ù
ÙØ§ÛØ³Ù ÙØ¬Ùد Ø®ÙØ§Ùد داشت.
اÛÙ Ø¨Ù Ø®ÙØ¯Û Ø®ÙØ¯ Ù
Ø´Ú©Ù Ù
ØØ³Ùب ÙÙ
ÛâØ´ÙØ¯Ø ÚÙÙ Ù
ÙØªÙØ±ÙØ§Û Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ø¨Ø³ÛØ§Ø± Ø³Ø±ÛØ¹ ÙØ³ØªÙØ¯Ø Ù¾Ø³ Ø¨Ø±Ø±Ø³Û ÛÚ© آراÛ٠با 10000 اÙÙ
ا٠ÚÙØ¯ Ù
ÛÚ©Ø±ÙØ«Ø§ÙÛÙ Ø·ÙÙ Ù
Ûâکشد.
اÙ
ا Ù
ا در ØÙÙÙ for ÚÙÛ٠آزÙ
Ø§ÛØ´Û را Ø¨Ø±Ø§Û ÙØ± اÙÙ
ا٠درÙÙ arr Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯ÙÛÙ
.
پس اگر arr.length برابر با 10000 باشد Ù
ا ÚÛØ²Û Ù
ث٠10000*10000 = 100 Ù
ÛÙÛÙÙ Ù
ÙØ§ÛØ³Ù Ø®ÙØ§ÙÛÙ
داشت. اÛÙ Ù
ÙØ¯Ø§Ø± Ø¨Ø³ÛØ§Ø± Ø²ÛØ§Ø¯ است.
Ø¨ÙØ§Ø¨Ø±Ø§Û٠اÛ٠را٠ØÙ تÙÙØ§ Ø¨Ø±Ø§Û Ø¢Ø±Ø§ÛÙâÙØ§Û Ú©ÙÚÚ© Ù ÙØ§Ø³Ø¨ است.
بعدا در ÙØµÙ Ø³Ø§Ø®ØªØ§Ø±ÙØ§Û Map Ù Set ٠ا ÛØ§Ø¯ Ù ÛâÚ¯ÛØ±ÛÙ Ú©Ù ÚÚ¯ÙÙ٠آ٠را بÙÛÙÙ Ú©ÙÛÙ .
function unique(arr) {
let result = [];
for (let str of arr) {
if (!result.includes(str)) {
result.push(str);
}
}
return result;
}
باز کرد٠راÙâØÙ Ù٠را٠با تستâÙØ§ درÙÙ ÛÚ© sandbox.