1

我在下面有一个javascript代码:

function init() {
   var data_pie = [];
   var data_key = [];

   data_pie.push(10,12,30,40,80,25);        
   data_key.push("x1","x2","x3","x4","x5","x6");        
   g.update(data_pie, data_key);
}

update: function(data, key) {
   var i=-1;

   var streakerDataAdded = d3.range(data.length).map(function() {
     i++;
       return {
         name: key[i],
         totalPlayers: data[i]
       }
   });
}

如何优化我的代码以使用此对象:

var data='{"data":[{"x1":"10","x2":"12","x3":"30","x4":"40","x5":"80","x6":"25"}]}';

而是data_piedata_key数组?

4

2 回答 2

1

如果无法对此进行测试(无法访问其余代码),您可以尝试以下操作:

function init() {
   var data='{"data":[{"x1":"10","x2":"12","x3":"30","x4":"40","x5":"80","x6":"25"}]}';

   for(key in data.data[0]){        
       g.update(data.data[0][key], key, data.data[0].length);
   }
}

update: function(data, key, length) {    
   var streakerDataAdded = d3.range(length).map(function() {
       return {
         name: key,
         totalPlayers: data
       }
   });
}
于 2013-01-15T07:16:16.847 回答
0

目前还不清楚为什么要使用这样的数据结构,但无论如何,我们开始吧:

var jsonData = '{"data":[{"x1":"10","x2":"12","x3":"30","x4":"40","x5":"80","x6":"25"}]}';
// var cleanerJsonData = '{"x1":"10","x2":"12","x3":"30","x4":"40","x5":"80","x6":"25"}';

function update(json){
    var data = JSON.parse(json).data[0]; // why use an array here?
    // var data = JSON.parse(json) - using cleanerJsonData. 
    var streakerDataAdded = d3.map(data).entries().map(function(d){
        return {name: d.key, totalPlayers: d.value} })
    }
}
于 2013-10-22T13:18:23.543 回答