Попытка отфильтровать массив из файла JSON с условием - PullRequest
0 голосов
/ 18 февраля 2020

Это, вероятно, простая вещь, но я новичок и очень запутался.

  const filteredFloors = state.cfAllFloors.json.filter(floor => {
    return floor.fields.building.fields.slug === 'Library'
  })

Я хотел бы изменить условие для этого объекта, чтобы сначала проверить, если здание существует, если он существует, то проверьте, соответствует ли оно 'Library'.

Я продолжаю получать "TypeError: Невозможно прочитать свойство 'fields' undefined" , и я подозреваю, что это потому, что некоторые элементы массива не имеют этого свойства.

1 Ответ

1 голос
/ 18 февраля 2020
const filteredFloors = state.cfAllFloors.json.filter(floor => {
    return floor && floor.fields && floor.fields.building && floor.fields.building.fields && floor.fields.building.fields.slug === 'Library'
  })

вернет false, если какое-либо из свойств в этой цепочке равно null или если окончательное значение .slug не равно 'Library'.

A null значение не равно " truey "и, следовательно, проверка объекта вернет false, если он равен null или true, если он имеет какое-либо значение.

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