【问题标题】:JSON.parse convert string to array errorJSON.parse 将字符串转换为数组错误
【发布时间】:2016-06-07 13:05:23
【问题描述】:

因此,我正在尝试编写此函数,该函数通过首先使用 JSON.parse 将其转换为数组来根据字符串中的值计算平均值。我在 JSON.parse 上遇到错误,我不知道为什么。

“Uncaught SyntaxError: Unexpected token N” 行:var elmt = JSON.parse('[' + string + ']');

    function averageRisk() {
            var sum = 0;
            var string = +health_grab; 
            // this returns a string from my database like this: 8,5,3,5,2,6,8,9

            var elmt = JSON.parse('[' + string + ']');

            console.log("healthLevels: " + elmt);

            for (var i = 0; i < elmt.length; i++) {
                        sum += parseInt(elmt[i].value, 10); 
            }

            if (isNaN(sum)) {
                        return false;
            }

            avg = Math.round(sum / elmt.length);

            console.log("Sum: " + sum);
            console.log("Average: " + avg);
    }

【问题讨论】:

  • 您的字符串是NaN+health_grab 中的加号是什么?

标签: javascript arrays json string


【解决方案1】:

+health_grab 上有一个 unary plus + 运算符。这试图将其转换为数字。这不起作用,它会产生NaN

JSON.parse() 尝试解析 NaN 失败,导致到达第一个字符 N 时出错。

Uncaught SyntaxError: Unexpected token N

删除+,它应该会修复错误。

【讨论】:

  • 这修复了它。我认为我需要“+”将其作为数字从数据库中引入。谢谢
【解决方案2】:

我认为您的第三行有错字。你有一个额外的“+”。当我在 Node.JS 中测试这个时,我得到了和你一样的错误。删除“+”,它应该可以工作。

如果这不是拼写错误,您尝试使用前缀“+”来达到什么目的?

【讨论】:

    猜你喜欢
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2017-11-27
    相关资源
    最近更新 更多