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

dch*_*ney 2 javascript arrays string json

所以我试着编写这个函数,通过首先将它转换为带有JSON.parse的数组来计算字符串中的值的平均值.我在JSON.parse上收到错误,我不知道为什么.

"Uncaught SyntaxError:Unexpected token N" line: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);
    }
Run Code Online (Sandbox Code Playgroud)

Rob*_*bie 5

你有一个一元加 +运算符+health_grab.这会尝试将其转换为数字.这不起作用,它产生NaN.

JSON.parse()尝试并且无法解析NaN,当它到达第一个字符时导致错误N.

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

删除它+,它应该修复错误.