数组如何在JavaScript中采用不同的格式,从而导致不同的结果?

我正在使用Charts.js从JSON文件制作折线图。为此,我需要创建3个数组,使用push方法获取JSON的值:

var serieCasos = [];
var serieMortos = [];
var serieDatas = [];

$.getJSON('URL OF THE JSON', function(dados){

console.log(dados.length);
for(i=0; i<dados.length; i++){
    serieCasos.push(dados[i].infected);
}
for(i=0; i<dados.length; i++){
    serieMortos.push(dados[i].deceased);
}
for(i=0; i<dados.length; i++){
   var timeStamp = Date.parse(dados[i].lastUpdatedAtSource);
   var d = new Date(timeStamp);
    serieDatas.push(d.getDate() + "/" + d.getMonth());
}
});

其中有2个正确定义为数字,另一个有字符串(这些是标签)。当我尝试将数组添加到Charts.js代码中时,它无法识别这三个数组中的任何一个。另一方面,当我在代码内创建2个简单数组时,它在图表中正常运行:

var values = [1,5,3,4,5,6,7,8,9,10,11,1,2,13,14,15,16,17];
var labels = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'];

为了检查第一组和第二组数组之间的差异,我在console.log中显示了5。然后,我注意到google chrome确实将它们区别对待,基于推送的内容显示为:

> []
> []
> []

(在这种情况下,在侧箭头中单击时会显示值,表明它们已在数组中正确索引)

当最后两个(手动编码的)像这样出现在控制台中时:

> (16) ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"]
> (18) [1, 5, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2, 13, 14, 15, 16, 17]

显然,我最终得到了2种不同类型的数组。它们之间的差异可能是第一组不起作用而第二组起作用的原因。如何格式化第一个,使其像第二个小组一样?它们之间到底有什么区别?

评论