170 похожих чатов

Здравстуйте, делал такую проверку на уникальность элементов массива. И возникло

два вопроса:
1) Не колхозно ли сделал?
2) Почему, когда в if вместо && ставлю ||, то выводится не так, как надо? Лог. ИЛИ же, по сути должен срабатывать, когда хотя бы одно true?
C &&: [ ':-O' ]
С ||: [ '1', '1', ':-O', 'кришна', 'кришна', 'харе', 'харе' ]

Код:
let strings = ["кришна", "кришна", "харе", "харе",
"харе", "харе", "кришна", "кришна", ":-O", "1", "1"];

function unique(arr) {
arr.sort();

results = arr.filter(
function(item, index) {
if (item !== arr[index - 1] && item !== arr[index + 1]) {
return item;
}
}
);

return results
}

console.log( unique(strings) )

3 ответов

10 просмотров

колхозно)) вы проверяете только соседние элементы же это раз, во вторых в .filter лучше возвращать true/false явно чтобы обозначить прошел ли элметен проверку или нет в третьих пишите на ES6, со стрелочными функциями, явным определением переменных и если задача просто отсеить дубликаты в массиве, достаточно сделать: const unique_array = Array.from(new Set(strings));

malus-Bro Автор вопроса

так я отсортировал, они явно нигде, кроме как рядом не будут

это да, я имею ввиду что если последний элемент проверяем то там выходим за пределы массива (index + 1) аналогично с первым

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Can I forward ports (including the SSH port) between two machines without SSH? I know I can forward SSH server port from machine A (which blocks all requests by firewall) to ...
required optional
5
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
Карта сайта