Как удалить дубликаты не зависимо от регистра букв?
Есть список [[LIST_WITH_FILE_CONTENT]] в котором нужно удалить дубли независимо от регистра букв. Список кстати содержит более 100 строк.
Пербором не получается, так как если вот так: Пример переменной со списком [[LIST_WITH_FILE_CONTENT]] : Код:
Book Я писал JS который удаляет из списка [[LIST_WITH_FILE_CONTENT]] все строки содержащие элемент из списка [[BLACK_LIST]] независимо от регистра букв. Подскажите, как удалить дубли из списка [[LIST_WITH_FILE_CONTENT]] независимо от регистра букв, хочу переделать этот JS-код (см. ниже)? JS-код: [[LIST_WITH_FILE_CONTENT]] = [[LIST_WITH_FILE_CONTENT]].filter(function(line){ return [[BLACK_LIST]].every(function(forbiddenWord) { return line.toLowerCase().indexOf(forbiddenWord.toLowerCase()) === -1; }); }); |
mik888em,
набросай строк 20 LIST_WITH_FILE_CONTENT |
Цитата:
let a = ['Book', 'BOOK'] const o = {} a = a.filter(el => { el = el.toLowerCase() if (o[el]) return false o[el] = true return true }) alert(a) |
ksa,
:yes: |
Цитата:
И кстати, забыл указать что каждая строка это целое предложение, то есть нужно очистить список от дубликатов строк независимо от регистра букв в преложении в строках. Написал, но код почему-то удаляет лишние строки, не пойму где ошибка: const list = [[LIST_WITH_FILE_CONTENT]]; const uniqueList = list.filter((word, index) => { const regexp = new RegExp(word, 'i'); for (let i = 0; i < list.length; ++i) { if (!regexp.test(list[i])) continue; if (i === index) return true; return false; } }); [[LIST_WITH_FILE_CONTENT]]=uniqueList; |
mik888em,
можно нормальные примеры, без [[]]] с возможностью проверить результат? алгоритм вам показал ksa, пост #3. вариант оформления макета можно посмотреть тут Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
mik888em,
<script> let text = ` И кстати, забыл указать, что каждая строка это целое предложение, то есть нужно очистить список от дубликатов строк, то есть НУЖНО ОЧИСТИТЬ список от дубликатов строк, ЧТО КАЖДАЯ строка это целое предложение, независимо от регистра букв в преложении в строках. И кстати, забыл указать,`; let redo = new Set(); let regStr = /.+(\n|$)/mg; function replace(str) { return redo.has(str.trim().toLowerCase()) ? '' : (redo.add(str.trim().toLowerCase()), str); } text = text.replace(regStr, replace); document.write(`<pre>${text}</pre>`) </script> |
Часовой пояс GMT +3, время: 15:00. |