jQuery .each()创建对象数组

ngp*_*und 0 javascript arrays jquery json object

我的目标是能够生成完全相同的东西.

var data = google.visualization.arrayToDataTable([
    ['Year', 'Cost'],
    ['2004',  1000],
    ['2005',  1170],
    ['2006',  660],
    ['2007',  1030]
  ]);
Run Code Online (Sandbox Code Playgroud)

但我试图通过使用JSON生成的数据来完成它

{
        "uid": 1,
        "name": "Cost",
        "data": [
            {
                "year": 2009,
                "cost": 640
            },
            {
                "year": 2010,
                "cost": 620
            },
            {
                "year": 2011,
                "cost": 600
            },
        {
            "year": 2012,
            "cost": 620
        }
]
}
Run Code Online (Sandbox Code Playgroud)

并通过使用此jQuery

$.getJSON("js/cost.json", function(d) {
    console.log(d.data);
    var items = [];
    $.each( d.data, function( k, v ) {
      console.log(v.cost);
      console.log(v.year);
      items.push("['"+v.year+"',"+v.cost+"]");
    });
    console.log(items);
});
Run Code Online (Sandbox Code Playgroud)

但我注意到的是它被推送为一个字符串,将对象推送到数组的正确方法是什么,这样我才能使它工作.

Sat*_*pal 5

目前你正在创建一个字符串,然后推送到数组.

使用

items.push([v.year, v.cost]);
Run Code Online (Sandbox Code Playgroud)

代替

items.push("['"+v.year+"',"+v.cost+"]");
Run Code Online (Sandbox Code Playgroud)