繁体   English   中英

JSON.parse将字符串转换为数组错误

[英]JSON.parse convert string to array error

因此,我尝试编写此函数,该函数通过首先将其转换为带有JSON.parse的数组来基于字符串中的值计算平均值。 我在JSON.parse上遇到错误,我不确定为什么。

“未捕获的SyntaxError:意外的令牌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);
    }

您在+health_grab上具有一元加号 + 这将尝试将其转换为数字。 这是行不通的,它会产生NaN

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

未捕获到的SyntaxError:意外令牌N

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

我认为您的第三行有错字。 您有一个额外的“ +”。 当我在Node.JS中对此进行测试时,我得到与您相同的错误。 删除“ +”,它应该可以工作。

如果这不是拼写错误,那么您尝试使用前缀“ +”实现什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM