d3.js中每行的多个列值的总和

时间:2015-03-01 16:10:01

标签: javascript mysql d3.js

我正在使用.csv文件,该文件需要针对每行中的每个键查找多个列值的总和。示例如下 -

key  | value1 | value2 | value3 | value4 
-----+--------+--------+--------+--------
mike | 1      | 3      | 5      | 7      
-----+--------+--------+--------+--------
mila | 2      | 4      | 6      | 8
-----+--------+--------+--------+--------
minda| 9      | 11     | 13     | 15

所以我需要以动态方式对每个键找到“value1 + value2 + value3 + value4”的总和,而不是提到d.value1 + d.value2 + d.value3 + d.value4。

...谢谢

1 个答案:

答案 0 :(得分:1)

您是否正在为CSV提出AJAX请求?如果你想在那里处理它:

d3.csv("data.csv")
  .row(function(d) {
    return {
      key: d.key,
      mySum: ((+d.value1) + (+d.value2) + (+d.value3) + (+d.value4))
    };
  })
  .get(function(error, rows) {
    console.log(rows);
  });

示例here

修改评论

如果您不知道列数,请执行以下操作:

d3.csv("data.csv")
  .row(function(d) { 
    var mySum = 0;
    for (var o in d) { // iterate all the properties of d
      if (o === "key") continue; // if it's our key field skip it
      else mySum += +d[o]; // everyone else into the sum
    }
    return {
      key: d.key, 
      mySum: mySum
    };
  })
  .get(function(error, rows) { 
    console.log(rows); 
  });

更新了example