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

Ребят, всем привет! Может кто-нибудь подсказать алгоритм, как правильно найти совпадения

одного массива в другом?

Суть: есть два массива https://jsfiddle.net/7rv9Lafc/


const array1 = [
{
id: 1,
name: '1',
},
{
id: 2,
name: '2',
},
{
id: 3,
name: '3',
}
];

const array2 = [
{
id: 2,
name: '2',
}
];


И вот нужно в первом массиве найти совпадения из второго и данным элементам добавить новое свойство, т.е. первый массив должен получиться вот таким:


const array1 = [
{
id: 1,
name: '1',
},
{
id: 2,
name: '2',
selected: true,
},
{
id: 3,
name: '3',
}
];


Проблема оптимизации кажется не такой важной в указанном примере, но на проде реалии такие, что в первом массиве может быть порядка 5к элементов, а во втором порядка 100 элементов. Если делать двумя циклами, то, понятное дело, это сумашествие, а мне что-то то ли в силу усталости, то ли моей тупости уже ничего другого и не приходит на ум.

11 ответов

14 просмотров

делай с массива, который меньше по длину мапу, а сам иди по тому, который длинный

как вариант можно второй массив индексировать по id

Могу показать решение😁

Как то так. const array2 = { "id": "...", "id": "...", "..." "..." };

Naim Shamsudinov
Как то так. const array2 = { "id": "...", "...

а если нужно совпадение по всем параметрам, а не только по id?

Владимир-Дегтярев Автор вопроса

Это самое неэффективное решение, я про него писал))

замапь второй массив по ключевому свойству, потом обходи первый массив и ищи в мапе нужные данные, сложность линейная будет

Владимир-Дегтярев Автор вопроса
Кирилл Глазунов
замапь второй массив по ключевому свойству, потом ...

не совсем понял… Но пока сделал такое решение https://jsfiddle.net/3wb9srk2/ завтра подумаю, насколько оно эффективное или может вообще не подходит

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

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

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта