Фильтровать массив объектов по имени объекта - PullRequest
1 голос
/ 23 сентября 2019

Я пытаюсь использовать array.filter () для фильтрации массива объектов по именам объектов.

Я безуспешно пытался использовать array.constructor.name.

var temp = ({ 
en: {
    id: `${scope}.en`,
    defaultMessage: 'English',
  },
  es: {
    id: `${scope}.es`,
    defaultMessage: 'Spanish',
  },
  ar: {
    id: `${scope}.ar`,
    defaultMessage: 'Arabic',
  },
});

var selectedObj = temp.filter(msg => msg.constructor.name === 'en');

1 Ответ

1 голос
/ 23 сентября 2019

Функция array.filter работает только с массивами.Переменная Temp - это не массив, это объект.Массив будет заключен в квадратные скобки []

Мне не совсем понятно, что вы пытаетесь сделать, но если ваша цель - просто присвоить объект "en" переменной selectedObj, тогдаЯ считаю, что будет работать следующее:

var selectedObj = temp.en;

Если у вас есть переменная, содержащая строку 'en', то, возможно, вы могли бы попробовать:

var code = 'en';
var selectedObj = temp[code];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...