Вы можете взять Set
и собрать контакты, а затем отфильтровать массив.
var contacts = [{ id: "1", name: "test" }, { id: "2", name: "foo" }, { id: "3", name: "june" }, { id: "4", name: "may" }],
filtered_contacts = [{ id: "1", options: [{ option_id: "1", contact_linked_id: "2" }, { option_id: "2", contact_linked_id: "4" }] }, { id: "2", options: [{ option_id: "3", contact_linked_id: "1" }] }],
cSet = filtered_contacts.reduce(
(s, { options }) => options.reduce(
(t, { contact_linked_id: id }) => t.add(id),
s
),
new Set
),
result = contacts.filter(({ id }) => cSet.has(id));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Насколько я - осведомленный доступ к неструктурированным сокетам, не availables ни в какой чистой библиотеке Java.
Частично это вызвано тем, что на большей части доступа O/S к неструктурированным сокетам привилегированная операция, только доступная процессам, работающим как корень / администратор.
Socket
и DatagramSocket
классы, доступные в java.net
пакет является неявно сокетами IP (для TCP и UDP, соответственно).
См. больше детали в Списках Apple - неструктурированные сокеты Java.
Я на самом деле не создал неструктурированных сокетов в Android, но пакеты java.net и javax.net shold делают то, в чем Вы нуждаетесь,