2017-02-04 42 views
2

我用d3.csv功能d3.js CSV加载 - 简单的数据转换

d3.csv(files[0], 
    function (d) { 

     return { 
      col1: +d["col1"], 
      col2: +d["col2"], 
      col3: +d["col3"]    
     };   
    }, 
function(error, data) {...}); 

,我用function(d)将所有数据转换为NUMERICS加载csv文件。有没有简化代码并处理所有列而不显式引用其名称的方法?

+0

嘿,你能解释一下你实际上想达到什么以及你在变量d中获得的数据格式。 –

+0

我正在加载一个csv文件,所有数字。为了被识别为数字,我需要运行这些+ =转换语句,它工作正常,但我想以我没有明确提及列名的方式来完成。 – Alex

回答

3

你想重复做同样的事情。这需要一个循环(例如for-loop或map)。

function (d) { 
    var result = {}; 
    for (key in d) { 
    result[key] = +d[key]; 
    } 
    return result; 
} 
+0

太棒了!还有一个问题:我可以把这段代码放在第三个参数('function(error,data)')中吗? – Alex

+1

一般来说,你可以在回调函数中做任何你喜欢的事情,因为这只是简单的JavaScript。所以是的,你可以做到这一点。但是,转换通常在访问器函数中完成。 – Bengt