我正在获取具有此属性的JSON对象
id: "23132772"
isAvailable: "1",
isSelected: "0",
maxPoints: "0",
minPoints: "0",
name: "Parlay",
placeBetIsAvailable: "0"
此JSON来自名为betType
所以我想说placeBetIsAvailable
false
时我想与placeBetIsAvailable: "0"
合作。
如你所见,我有if(!betType.placeBetIsAvailable)
所以,在我的代码中,我能够做到:
if(betType.placeBetIsAvailable === '0')
?
或者我应该指定
{ "query":
{ "nested" : {
"path" : "Purchases",
"score_mode" : "avg",
"query" : {
"bool" : {
"must" : [
{
"match" : {"Purchases.Country" : "US"}
},
{
"range" : "Purchases.Price":
{
"lte": 5
}
}
]
}
}
}
}
}
?
答案 0 :(得分:5)
JavaScript中的字符串"0"
是 truthy ,而数字0
则不是。如果你的JSON用引号中的零编码,那么它们就是非空字符串。
答案 1 :(得分:1)
如果它是一个数字而不是一个字符串你可以这样做,但由于它是一个字符串中包含字符的字符串(不是空字符串''),它不再是假的。要解决这个问题,你可以这样做
if(!parseInt(betType.placeBetIsAvailable))
或
if(!+betType.placeBetIsAvailable)
这可能比仅仅做更多的工作
if(betType.placeBetIsAvailable === '0')
答案 2 :(得分:1)
如果你使用字符串" 0"那么构造if(!betType.placeBetIsAvailable)
是不合适的。和" 1"编码true
和false
。在地址栏中输入以查看原因。
javascript:alert(["0", !"0", "1", !"1"])
基本上,!" 0"和!" 1"两者都评估为false
。
如果确实无法对服务器返回的JSON做任何事情,则应使用if(betType.placeBetIsAvailable === '0')
形式。
答案 3 :(得分:1)
尝试将其转换为数字并使用!将其转换为布尔值
if(!!Number(betType.placeBetIsAvailable))