Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaScript 2 массива json получить совпадения / 4 сообщений из 4, страница 1 из 1
28.04.2021, 20:29
    #40066972
linney
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript 2 массива json получить совпадения
А кто силен в красивостях js?
a = [{"a":"a1"},{"a":"a2"},{"a":"a3"}]
b = [{"b":"a3"},{"b":"a2"}]

Как бы красиво получить c=["a2", "a3"]
без нудных переборов?

Спасибо!
...
Рейтинг: 0 / 0
28.04.2021, 20:35
    #40066973
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript 2 массива json получить совпадения
linney
А кто силен в красивостях js?
a = [{"a":"a1"},{"a":"a2"},{"a":"a3"}]
b = [{"b":"a3"},{"b":"a2"}]

Как бы красиво получить c=["a2", "a3"]
без нудных переборов?

Спасибо!


1) Это форум по java, а не по JS.
2) ХЗ, насколько красиво, можно так:
a.map(x => x.a).filter(x => b.map(y => y.b).includes(x))
...
Рейтинг: 0 / 0
29.04.2021, 05:46
    #40067052
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript 2 массива json получить совпадения
Lelouch
includes

Это как раз перебор в лоб, причём для каждого элемента в A будет создаваться массив из B, а потом по этому массиву будет еще один пробег. Если так писать, то код очень скоро перестанет отрабатывать за конечное время и все начнут выть, что мол, жс тормозит.
Код: sql
1.
2.
3.
4.
var a = [{"a":"a1"},{"a":"a2"},{"a":"a3"}]
var b = [{"b":"a3"},{"b":"a2"}]
var setA = new Set(a.map(v=>v.a));
var c = b.map(v=>v.b).filter(v=>setA.has(v));
...
Рейтинг: 0 / 0
29.04.2021, 08:07
    #40067071
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript 2 массива json получить совпадения
crutchmaster
Lelouch
includes

Это как раз перебор в лоб, причём для каждого элемента в A будет создаваться массив из B, а потом по этому массиву будет еще один пробег. Если так писать, то код очень скоро перестанет отрабатывать за конечное время и все начнут выть, что мол, жс тормозит.
Код: sql
1.
2.
3.
4.
var a = [{"a":"a1"},{"a":"a2"},{"a":"a3"}]
var b = [{"b":"a3"},{"b":"a2"}]
var setA = new Set(a.map(v=>v.a));
var c = b.map(v=>v.b).filter(v=>setA.has(v));


Обычно, когда просят без нудных переборов, это означает без for loop)
А так - да, вы правы)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaScript 2 массива json получить совпадения / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]