首页 > 解决方案 > 尝试从带有条件的 JSON 文件中过滤数组

问题描述

这可能是一件简单的事情,但我是一个新手,很困惑。

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

我想改变这个对象的条件,首先检查建筑物是否存在,如果存在,然后检查它是否与“图书馆”匹配。

我不断收到“TypeError:无法读取未定义的属性'字段'”,我怀疑这是因为某些数组项没有此属性。

标签: javascriptarraysjsonfilter

解决方案


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

如果该链中的任何属性是null或最终.slug不等于“库”,则将返回 false。

一个null值不是“真实的”,因此检查对象将返回 false,如果它是null或者true如果它有任何值。


推荐阅读