在获取JSON数据时遇到了一个奇怪的问题,如下所示。
[
{
"type":"ripe",
"red":137,
"green":68,
"blue":40,
"strftime(\"%H:%M:%S\", time)":"18:46:37"
},
]
我无法使用JavaScript按类型比较此数据,由于某种奇怪的原因,它们都成功地通过了if语句。两个变量的总数等于2。
let counterLoop = function() {
for (let i = 0; i < data.length; i++) {
let fruitType = JSON.stringify(data[i].type);
sortFruit(fruitType.toLowerCase());
}
}
let sortFruit = function(fruitType) {
if (fruitType.localeCompare('ripe') === 0){} {
totalRipeFruit++;
$("#totalRipeFruit").text(totalRipeFruit);
}
if (fruitType.localeCompare('unripe') === 0){} {
totalUnripeFruit++;
$("#totalUnripeFruit").text(totalUnripeFruit);
}
}
知道为什么会这样吗?
非常感谢您!
答案 0 :(得分:1)
您在这里有两个问题;首先,无需在类型上使用JSON.stringify
,只需将其省略,因为它将返回包含无用引号的字符串。
其次,您的if语句搞砸了:每个括号后面都有第二对括号,因此只需更改
if (fruitType.localeCompare('ripe') === 0){} {
totalRipeFruit++;
$("#totalRipeFruit").text(totalRipeFruit);
}
if (fruitType.localeCompare('raw') === 0){} {
totalRawFruit++;
$("#totalRawFruit").text(totalRawFruit);
}
收件人:
if (fruitType.localeCompare('ripe') === 0) {
totalRipeFruit++;
}
if (fruitType.localeCompare('raw') === 0) {
totalRawFruit++;
}