@FastSpace said in Failed to get proxy ip - не было не было и появилось и не уходит:
@kuzkuz забей
Спасибо!
Экшен Список -> удалить дубликаты, не удалит дубли например такие
Строка - это предложение из нескольких слов, например так:
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]] независимо от регистра букв в эталоне строки и дубле этой строки.