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

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

Спасибо!
...
Рейтинг: 0 / 0
JavaScript 2 массива json получить совпадения
    #40066973
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
JavaScript 2 массива json получить совпадения
    #40067052
Фотография 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));
...
Рейтинг: 0 / 0
JavaScript 2 массива json получить совпадения
    #40067071
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaScript 2 массива json получить совпадения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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