-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask5
More file actions
28 lines (24 loc) · 1.18 KB
/
task5
File metadata and controls
28 lines (24 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* @param {String[]} hashtags
* @returns {String}
*/
module.exports = function (hashtags) {
// Создаем объект для хранения тегов
// Он будет содержать все теги, которые мы встретили
// Проверка существования ключа в объекте происходит быстрее, чем поиск в массиве
var tagsMap = {};
// Создаем массив для хранения результирующего списка тегов
var tagsList = [];
for (var i = 0; i < hashtags.length; i++) {
// Приводим хэштег к нижнему регистру
var hashtag = hashtags[i].toLowerCase();
// Проверяем, встречали ли такой хэштег
// Если не встречали, сохраняем его в список tagsList и объект tagsMap
if (!tagsMap.hasOwnProperty(hashtag)) {
tagsMap[hashtag] = true;
tagsList.push(hashtag);
}
}
// Склеиваем теги и возвращаем результат
return tagsList.join(', ');
};