如何检查JSON对象中的数组属性是否为空?

时间:2017-03-07 10:52:50

标签: javascript json reactjs

我是这种JSON对象:

sections: 
[
    {
        "id":1,
        "title":"Description du projet",
        "content":[
            {
                label:'Type de projet',
                type:'select',
                values:[
                    {
                        label:'Achat',
                        options:[
                            {
                                label:'Neuf'
                            },
                            {
                                label:'Neuf + travaux'
                            },
                            {
                                label:'Ancien'
                            },
                            {
                                label:'Ancien + travaux'
                            },
                            {
                                label:'Terrain'
                            },
                            {
                                label:'Terrain + construction'
                            }
                        ]
                    },

我想检查"选项" 数组是否定义,以便在每种情况下构建不同的组件。

有可能吗?如果是,你可以告诉我怎么做?

提前谢谢

2 个答案:

答案 0 :(得分:0)

从"部分"中迭代每个数组;直到"值",然后我们将在那里进行检查。请参阅以下代码:

sections.forEach(section =>{
  section.content.forEach(c => {
    c.values.forEach(value =>{
      if (!value.options) {
        // "options" array is undefined.
        return;
      }

      // "options" array is defined, build different components here.
    });
  });
});

答案 1 :(得分:0)

您可以使用lodash执行所有未定义或存在的检查。查看库here

来到你的问题,使用lodash我会做这样的事情:

import _ from 'lodash';
let options = _.get(a, ['sections','0','content', '0', 'values', '0', 'options']);
if(!_.isUndefined(options)){
    //do your stuff
}

您可以使用lodash以多种方式执行此操作。如果路径不存在,您还可以返回默认值。