@Galdar
Web, JS, PHP, NGINX, Linux

Как правильно отфильтровать объект?

У меня есть объект
params= {
 0:[],
 1:[],
 2:[],
 3:[],
 4:[],
 5:[]
}


И есть массив
key = [1,3,5]

И требуется вывести данные из объекта только с ключами которые указаны в массиве. Как это можно сделать не используя for?
Или используя ngFor + pipe?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 2
IonDen
@IonDen
JavaScript developer. IonDen.com
Ну раз for нельзя, то сделаем так :-)
const keys = [1,3,5];
const params = {
  0:[],
  1:[],
  2:[],
  3:[],
  4:[],
  5:[]
};
const result = keys.reduce((acc, key) => {
  if (key in params) acc[key] = params[key];
  return acc;
}, {});

console.log(result); // { '1': [], '3': [], '5': [] }
Ответ написан
Всего одна функция из Lodash: https://lodash.com/docs/4.17.15#pick
import pick from 'lodash/pick'

key = [1,3,5]

params= {
 0:[],
 1:[],
 2:[],
 3:[],
 4:[],
 5:[]
}

pick(params, key) // { '1': [], '3': [], '5': [] }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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