Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2018, 14:09
Аспирант
Отправить личное сообщение для korih Посмотреть профиль Найти все сообщения от korih
 
Регистрация: 02.06.2016
Сообщений: 36

фильтр массив обьектов
Добрый день уважаемые форумчане.
помогите разобраться в одном вопросе. у меня есть два массива объектов, к примеру:
let obj1 = [
 {id:1, name="вася"},
 {id:2, name="петя"},
 {id:3, name="маша"},
 {id:4, name="даша"}
]
let obj2 = [
 {id:1},
 {id:2}
]


и мне нужно вывести объекты где id obj2 совпадает с obj1

запутался с фильтрами и сортировками, в итоге у меня получается достичь цели, но код выглядет громостким и "грязным"
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2018, 14:23
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

только "ослах" не будет работать %)
let obj1 = [
    { id: 1, name: "вася" },
    { id: 2, name: "петя" },
    { id: 3, name: "маша" },
    { id: 4, name: "даша" }
  ]
  let obj2 = [
    { id: 1 },
    { id: 2 }
  ]
  let obj2Keys = obj2.map(o2 => o2.id)
  let result = obj1.filter(o1 => obj2Keys.includes(o1.id))
  console.log(result)
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2018, 14:27
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

SuperZen,
лишний цикл
let obj1 = [
 {id:1, name:"вася"},
 {id:2, name:"петя"},
 {id:3, name:"маша"},
 {id:4, name:"даша"}
];
let obj2 = [
 {id:1},
 {id:2}
];

var filtred = obj1.filter(el=> obj2.some(el2=> el2.id==el.id));
console.log(filtred);
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2018, 14:34
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

j0hnik, Ок )
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2018, 14:36
Аспирант
Отправить личное сообщение для korih Посмотреть профиль Найти все сообщения от korih
 
Регистрация: 02.06.2016
Сообщений: 36

спасибо вам большое
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно сделать добавление обьектов в массив Romann Общие вопросы Javascript 1 10.09.2017 22:09
Добавление объекта в массив в цикле Dark19 Элементы интерфейса 3 11.12.2016 23:11
Двумерный массив обьектов jeka123 Javascript под браузер 2 06.07.2014 16:56
ng-repeat кастомный фильтр для фильтрации обьектов (непонятное поведение) VerDiz Angular.js 10 04.08.2013 15:42
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14