【问题标题】:codition statement empty or not empty条件语句为空或不为空
【发布时间】:2019-09-09 15:34:43
【问题描述】:

需要帮助查看数组是否为空。 这个条件块是什么?

空数组如下所示:

[
    {
        "readTime": "2019-09-09T15:20:44.648599Z"
    }
]

非空数组如下所示:

[
    {
        "document": {
            "name": "projects/warrenty-MdBQxhFSQF11ZKImqL",
            "fields": {
                "plate": {
                    "stringValue": "AW69176"

                "createDate": {
                    "timestampValue": "2019-08-22T21:08:42.563Z"
                },
                "product": {
                    "stringValue": "Paint"
                },
                "exp_date": {
                    "timestampValue": "2026-08-22T21:08:18Z"
                }
            },
            "createTime": "2019-08-22T21:09:19.972639Z",
            "updateTime": "2019-09-09T11:33:27.134588Z"
        },
        "readTime": "2019-09-09T15:19:49.433613Z"
    },
]

【问题讨论】:

  • 第一个数组不是空的吗?请发布您想要或尝试的结果
  • [ { "readTime": "2019-09-09T15:20:44.648599Z" } ]这不是空数组
  • 将您的集合分配给一个变量并运行items.filter(({ document }) => document);。这只会返回文档返回真实值的对象。

标签: javascript arrays json react-native react-native-flatlist


【解决方案1】:

从 JSON 的外观来看,您可以检查每个对象的“文档”属性是否存在。

for (var i = 0; i < array.length; i++){
    if (array[i].document){
      //exists
    }
    else { //doesn't exist}
}

【讨论】:

    【解决方案2】:

    您可以使用forEach 循环遍历数组,并可以使用hasOwnProperty 检查对象是否有任何键名document

    let data = [{
      "document": {
        "name": "projects/warrenty-MdBQxhFSQF11ZKImqL",
        "fields": {
          "plate": {
            "stringValue": "AW69176",
    
            "createDate": {
              "timestampValue": "2019-08-22T21:08:42.563Z"
            },
            "product": {
              "stringValue": "Paint"
            },
            "exp_date": {
              "timestampValue": "2026-08-22T21:08:18Z"
            }
          },
          "createTime": "2019-08-22T21:09:19.972639Z",
          "updateTime": "2019-09-09T11:33:27.134588Z"
        },
        "readTime": "2019-09-09T15:19:49.433613Z"
      }
    }, {
      "readTime": "2019-09-09T15:19:49.433613Z"
    }]
    
    data.forEach((e, index) => {
      if (e.hasOwnProperty('document')) {
        console.log(`Object at index ${index} has document key`)
      } else {
        console.log(`Object at index ${index} does not have document key`)
      }
    
    })

    【讨论】:

      【解决方案3】:

      您所说的“空数组”并不是真正的空数组,因为它包含一个对象。 但我认为你想要做的是弄清楚数组是否包含具有第二个数组结构的对象。

      为了检查您的数组是否为您所称的“空”,您可以检查您的对象是否具有属性“文档”。

      function isEmpty(array){
       var object = array[0];
       return !object.hasOwnProperty('document'); 
      }
      

      当您的数组为“空”时,此函数将返回 true,否则返回 false。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-17
        • 2018-01-29
        • 2014-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多