使用parseInt在数组上使用jquery .each循环 - 给出NaN

时间:2012-10-08 13:39:32

标签: jquery json each parseint

我已经使用.each设置了一个循环,以便将json编码字符串转换为用于jquery jqBarGraph的数组

循环:

     $.each(dataarray, function (i, item) {
         JSarray[i] = [parseInt(item['count']),parseInt(item['year'])];                        
     });

dataarray中的数据包含json string =

    {"graph":{"count":"45","year":"2007"}}
.each循环在JSarray

中包含这些值之后的

    [45, 2007]

所以单个字符串可以正常工作,当我尝试传递更多数据时,我会得到谷值NaN

如果我尝试在数据数据阵列中使用这个json编码字符串,那么NaN就会出现

{"graph":[{"count":"45","year":"2007"},{"count":"390","year":"2008"}]}

我的JSarray看起来像这样

[NaN, NaN]

我做错了什么?

3 个答案:

答案 0 :(得分:2)

{"graph":[{"count":"45","year":"2007"},{"count":"390","year":"2008"}]}

graph属性现在包含一个数组。你需要迭代它来解析你的整数。

我会尝试这个......

$.each(dataarray.graph, function(_, obj){
  JSarray.push([parseInt(obj.count), parseInt(obj.year)]);
});

请注意,定期for循环最好,因为$.each对此有点贵。

答案 1 :(得分:0)

执行以下操作:

$.each(dataarray.graph, function (i, item) {
  JSarray[i] = [parseInt(item['count']),parseInt(item['year'])];                        
});

答案 2 :(得分:0)

你需要:

$.each(dataarray['graph'], function (i, item) {
  JSarray[i] = [parseInt(item['count']),parseInt(item['year'])];                        
});