Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ChartJS创建变量接受每个字符并输出未定义的值_Jquery_Html_Ajax_Chart.js - Fatal编程技术网

Jquery ChartJS创建变量接受每个字符并输出未定义的值

Jquery ChartJS创建变量接受每个字符并输出未定义的值,jquery,html,ajax,chart.js,Jquery,Html,Ajax,Chart.js,我正在为我的工作创建一个简单的条形图。我用Python和Pandas做同样的用途。因为我需要这个用于HTML,所以我使用ChartJS。下面是我的一段代码: success: function(data) { console.log(data); var n = []; var s = []; for(var i in data) { n.push(data[i].name); s.

我正在为我的工作创建一个简单的条形图。我用Python和Pandas做同样的用途。因为我需要这个用于HTML,所以我使用ChartJS。下面是我的一段代码:

success: function(data) {
        console.log(data);
        var n = [];
        var s = [];

        for(var i in data) {
            n.push(data[i].name);
            s.push(data[i].score);
        }
我的数据如下,并在控制台日志中正确呈现:

[{"name":"ajay","score":"80"},{"name":"smitha","score":"90"},{"name":"ravi","score":"95"}]
现在,当我运行上面的for循环时,它从数据中提取每个字符,并将其作为未定义的标签输出。我的问题是,为什么它实际上不提取名称和分数数据,例如,输入变量n和s的ajay和80


如果您能帮助我了解根本原因,我将非常感谢您的回复。为什么它不读取整个名称ajay,而是抛出90个未定义的标签,总共90个字符?

这是因为您的响应数据是一个字符串,而for..in over a string会迭代字符串中的字符。 如果希望将json解析为数组,则必须将ajax请求中的数据类型设置为json,使用json.parse或将服务器上的内容类型设置为application/json


成功了!!我确实理解您的解决方案的字符串部分,但没有意识到数据是JSON。非常感谢。
dataType: 'json',
success: function(data) {
        console.log(data);
        var n = [];
        var s = [];

        for(var i in data) {
            n.push(data[i].name);
            s.push(data[i].score);
        }