我正在尝试检查JavaScript中的json值是否为空列表。 我显然尝试了json.bundleProductSummaries!= []。这行不通,但是行得通:
JSON.stringify(json.bundleProductSummaries) != JSON.stringify([])
我的json:
{
"bundleProductSummaries": [
]
}
我的代码:
fs = require('fs')
body = fs.readFileSync('./json.txt',{encoding : 'utf-8'})
// ---- Parsing de body ----
let json = JSON.parse(body);
let colored = null;
if(json.bundleProductSummaries != []){
json = json.bundleProductSummaries[0];
}
感谢您将来的回答! Syndorik
答案 0 :(得分:5)
您需要检查长度
json.bundleProductSummaries.length === 0
因为在JS中
console.log([] === [] )
,因为它们是两个不同的内存引用。
但是当两个数组的计算结果为true时?
当您要比较的两个值都具有相同的引用时
let a = []
console.log(a === a)
答案 1 :(得分:2)
您可以检查数组的length
来检查其是否为空
let obj = {
"bundleProductSummaries": []
}
console.log(obj.bundleProductSummaries.length === 0)
在这种情况下,您不需要比较,因为您正在if
语句中使用它,而0
本身就是一个虚假的值。
let obj = {
"bundleProductSummaries": []
}
if(!obj.bundleProductSummaries.length){
console.log("Array is empty")
}