Преобразовать логическое значение с true в массив в Angular4 (Typescript) - PullRequest
0 голосов
/ 20 декабря 2018

Я получаю набор логических значений из своего микросервиса.

   "mon": true,
   "tues": false,
   "wed": false,
   "thurs": true,
   "fri": false,
   "sat": true,
   "sun": false,

И мне нужно преобразовать значения с логическим значением true в массив, как показано ниже:

options = ['mon', 'thurs', 'sat']

Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 20 декабря 2018

Вам необходимо использовать filter на ключах объектов для тех дней ключ:

var day = {
  "mon": true,
  "tues": false,
  "wed": false,
  "thurs": true,
  "fri": false,
  "sat": true,
  "sun": false
};

var res = Object.keys(day).filter(key => day[key]);
console.log(res);
0 голосов
/ 20 декабря 2018

Просто еще один способ с записями и деструктурой массива ??

let day = {
  "mon": true,
  "tues": false,
  "wed": false,
  "thurs": true,
  "fri": false,
  "sat": true,
  "sun": false
};

let result = Object.entries(day).filter(([key, state]) =>state).map(([key]) => key);

console.log(result);
0 голосов
/ 20 декабря 2018

Вы можете отфильтровать ключи:

const obj = {
    "mon": true,
    "tues": false,
    "wed": false,
    "thurs": true,
    "fri": false,
    "sat": true,
    "sun": false,
};
const options = Object.keys(obj).filter(key => obj[key]);

console.log(options);
...