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

Всем привет, у меня есть такая конструкция [ [obj1, obj2],

[obj3, obj2], [obj2, obj4], [obj5, obj2, obj8] ]
мне нужно взять из этого массива эелементы, которые есть во всех вложенных массивах, то есть в примере должен остаться только obj2
как такое можно сделать? какой метод юзать?

13 ответов

31 просмотр

можно так const arr = [[1, 2], [3, 2], [2, 4], [5, 2, 8]]; arr.flat().reduce((acc, item) => { if (!acc[0].has(item)) { acc[0].add(item); } else { acc[1] = item; } return acc }, [new Set()])[1]

const inAllArrays = (arrays) => { const arraysCount = arrays.length; const occurencies = arrays.reduce((occurencies, array) => { array.forEach((element) => occurencies.set(element, occurencies.get(element) ?? 0 + 1) ); return occurencies; }, new Map()); return [...occurencies.keys()].filter( (element) => occurencies.get(element) === arraysCount ); }; мб, типа того, не проверял

i7 4n
const inAllArrays = (arrays) => { const arraysCo...

вот это хороший вариант

🏴‍☠️
можно так const arr = [[1, 2], [3, 2], [2, 4], [5...

или так понятнее const arr = [[1, 2], [3, 2], [2, 4], [5, 2, 8]]; const findRepeatInSubArr = arr => { const uniq = new Set(); return arr.flat().find(item => { if(!uniq.has(item)) { uniq.add(item); } else { uniq.clear(); return item; } }) }

krike- Автор вопроса
i7 4n
const inAllArrays = (arrays) => { const arraysCo...

спасибо, надеюсь сработает (хотя мне по хорошему все общие элементы во всех массивах взять)

krike
спасибо, надеюсь сработает (хотя мне по хорошему в...

так там и будет массив с элементами, которые есть во всех массивах

krike
спасибо, надеюсь сработает (хотя мне по хорошему в...

аа, тогда мое решение вернет только obj2, т.к. он во всех повторяется

krike- Автор вопроса

нет, такого быть не должно, у меня проверка при добавлении

ну тогда проканает. иначе для простоты можно Set ещё на массив сначала кинуть, но мне в таком случае не нравится нарастающая сложость

krike- Автор вопроса
i7 4n
ну тогда проканает. иначе для простоты можно Set е...

если честно пишу говнокод, я пишу фильтр по условия AND как в exel, у меня много элементов, примерно пару тысяч, и при выборе 4х условий фильтр начинает работать по 5 секунд ожидания

krike
нет, такого быть не должно, у меня проверка при до...

const inAllArrays = (arrays) => { const arraysCount = arrays.length; const occurencies = arrays.reduce((occurencies, array) => { array.forEach((element) => occurencies.set( element, (occurencies.get(element) ?? new Set()).add(array) ) ); return occurencies; }, new Map()); return [...occurencies.keys()].filter( (element) => occurencies.get(element).size === arraysCount ); }; вот так, вроде как, должно быть ок, по-прежнему не проверял)

Есть еще такой вариант: const arr = [[1, 2], [3, 2], [2, 4], [5, 2, 8]]; const uniq = new Set(arr.flat()); const result = []; for (const value of uniq) { const avaliableInAll = arr.map(x => x.includes(value)); if (avaliableInAll.every(x => x)) result.push(value); }

i7 4n
const inAllArrays = (arrays) => { const arraysCo...

const inAllArrays = (arrays) => { const elementsWithoutDuplicates = [...new Set(arrays.flat())]; const sets = arrays.map((array) => new Set(array)); return elementsWithoutDuplicates.filter((element) => sets.every((set) => set.has(element)) ); }; или ещё так, но надо чекать всё по производительности и т. п.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта