ES6 деструктуризация получить вложенный объект - PullRequest
2 голосов
/ 27 сентября 2019

У меня есть ниже объект в массиве.При итерации мне нужно получить доступ к определенному свойству в цикле.Я могу получить базовые свойства, но не могу получить значение вложенного свойства.

let data = [{
  id:"0",
  value:{
    empId:"123",
    emp_type:"perm",
    schedule:{
      abcSchedule:{cron_str: "0 13 * * 0,3,4,5,6"}
    }
  }
}];


var newMap = data.map(({ idx: i, value: { empId, emp_type, /*cron_str ? how to get  */  } }) => console.log(emp_type));

Как я могу получить cron_str в карте с помощью деструктуризации.Если значения не предоставлены, тогда оно должно иметь значение по умолчанию.

Ответы [ 2 ]

2 голосов
/ 27 сентября 2019

Вы можете использовать {value:{schedule:{abcSchedule:{cron_str}}}}:

let data = [{
    id: "0",
    value: {
      empId: "123",
      emp_type: "perm",
      schedule: {
        abcSchedule: {
          cron_str: "0 13 * * 0,3,4,5,6"
        }
      }
    }
  },
  {
    id: "1",
    value: {
      empId: "1234",
      emp_type: "merm",
      schedule: {
        abcSchedule: {
        }
      }
    }
  },
  {
    id: "2",
    value: {
      empId: "1235",
      emp_type: "mtermerm",
      schedule: {
        abcSchedule: {
          cron_str: null
        }
      }
    }
  },
  {
    id: "3",
    value: {
      empId: "12356",
      emp_type: "apple",
      schedule: {
        abcSchedule: {
          cron_str: undefined
        }
      }
    }
  }
];


var newMap = data.map(({
  value: {
    empId,
    emp_type,
    schedule: {
      abcSchedule: {
        cron_str
      }
    }
  }
}) => console.log(empId, cron_str));
1 голос
/ 27 сентября 2019
 var newMap = data.map(({ idx: i, value: { empId, emp_type, schedule: { abcSchedule: { cron_str }}} }) => console.log(emp_type, cron_str));

Просто уничтожьте, как вы уже сделали с value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...