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

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

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

13 ответов

27 просмотров

можно так 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)) ); }; или ещё так, но надо чекать всё по производительности и т. п.

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта