@Realno_chel регуляркой получить все цифры,4 в списке ваша
Как удалить дубликаты не зависимо от регистра букв?
-
Экшен Список -> удалить дубликаты, не удалит дубли например такие
Строка - это предложение из нескольких слов, например так:When I consider every thing that grows Holds in perfection but a little moment, That this huge stage presenteth nought but shows Whereon the stars in secret influence comment; When I perceive that men as plants increase, Cheered and cheque'd even by the self-same sky, Vaunt in their youthful sap, at height decrease, And wear their brave state out of memoryИ кстати, забыл указать что каждая строка это целое предложение, то есть нужно очистить список от дубликатов строк независимо от регистра букв в преложении в строках.
Подскажите JS скрипт который удаляет дубликаты независимо от регистра букв? -
@Nikolas said in Как удалить дубликаты не зависимо от регистра букв?:
Экшен Список -> удалить дубликаты, не удалит дубли например такие
Book BOOKПодскажите JS скрипт который удаляет дубликаты независимо от регистра букв?
Перебором
-
Написал , но почему то удаляет лишние строки( , не пойму где ошибка:
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; -
@Nikolas Жесть. Почему бы не хранить ваш стоп лист в нижнем регистре, и просто слово которое требуется проверить приводить к нижнему регистру перед проверкой? Ну или на худой конец приводить список к нижнему регистру перед проверкой. Нет смысла гонять цикл в цикле
Если же регистр имеет значение, тогда вот пример
const list = [ 'Book', 'book', 'BOOK', 'book', ] const hash = new Set(list); const uniq = Array.from(hash); //Array(3) [ "Book", "book", "BOOK" ] -
@UserTrue said in Как удалить дубликаты не зависимо от регистра букв?:
@Nikolas Жесть. Почему бы не хранить ваш стоп лист в нижнем регистре, и просто слово которое требуется проверить приводить к нижнему регистру перед проверкой? Ну или на худой конец приводить список к нижнему регистру перед проверкой. Нет смысла гонять цикл в цикле
Если же регистр имеет значение, тогда вот пример
const list = [ 'Book', 'book', 'BOOK', 'book', ] const hash = new Set(list); const uniq = Array.from(hash); //Array(3) [ "Book", "book", "BOOK" ]При выполнении в экшене Яваскрипт этого кода, в басе содержимое переменной [[LIST_WITH_FILE_CONTENT]] вообще не поменялось.
let list = [[LIST_WITH_FILE_CONTENT]]; const hash = new Set(list); const uniq = Array.from(hash); [[LIST_WITH_FILE_CONTENT]]=list; -
@Nikolas said in Как удалить дубликаты не зависимо от регистра букв?:
При выполнении в экшене Яваскрипт этого кода, в басе содержимое переменной [[LIST_WITH_FILE_CONTENT]] вообще не поменялось.
Ну еще бы, вы по сути написали это. Что должно поменяться?
let list = [[LIST_WITH_FILE_CONTENT]]; [[LIST_WITH_FILE_CONTENT]]=list; -
В общем сам разобрался , вот готовый код, может кому-то будет полезен (вставляем в кубик Яваскрипт):
let arr = [[LIST_WITH_FILE_CONTENT]]; let res = ( [...arr.map(x => x.toLowerCase()).reduce( (m, c, i) => m.get(c) ? m : m.set(c, arr[i]), new Map ).values()] ); [[LIST_WITH_FILE_CONTENT]]=res;Код удаляет дубликаты в списке [[LIST_WITH_FILE_CONTENT]] независимо от регистра букв в эталоне строки и дубле этой строки.