编码语句为空或不为空



需要帮助来查看数组是否为空。 对此的条件块是什么?

空数组如下所示:

[
{
"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"
},
]

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

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

您可以使用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`)
}
})

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

为了检查你的数组是否像你所说的那样是"空的",你可以检查你的对象是否具有属性"document"。

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

当数组为"空"时,此函数将返回true,当数组不为空时,此函数将返回 false。

最新更新