将JSON字符串元素与JavaScript字符串进行比较

时间:2020-05-15 16:32:34

标签: javascript json database

在获取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);
                }
            }

知道为什么会这样吗?

非常感谢您!

1 个答案:

答案 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++;
}
相关问题