早上好,
抱歉这是一个简单的问题,毫无疑问会显示我完全缺乏对这个问题的理解,虽然我已经玩了好几个小时试图理解这一点,但显然我错过了一些非常基本的东西。
我有一个我已成功加载的CSV文件:
d3.csv("data.csv", function(data) {
console.log(data);
});
它包含28行数据,包含4列。
我试图将数据“绑定”到依赖于列的3个独立数组......
var Array1 = [],
Array2 = [],
Array3 = []
for (var i = 0; i < data.length; i++) {
Array1.push([ i, 10]);
Array2.push([ i, 20]);
Array3.push([ i, 30]);
}
以上代码有效,但没有链接到数据集......我真正想要的是下面显示的内容,其中大写字母标记CSV文件中的数据:
var Array1= [],
Array2 = [],
Array3 = []
for (var i = 0; i < data.length; i++) {
Array1.push([ FIRSTCOLUMN, SECONDCOLUMN]);
Array2.push([ FIRSTCOLUMN, THIRDCOLUMN]);
Array3.push([ FIRSTCOLUMN, FOURTHCOLUMN]);
}
对不起,我意识到这是一个非常愚蠢的问题......但也许只是链接到一篇文章来解释我需要的东西真的有帮助吗?
谢谢:)
答案 0 :(得分:0)
首先,你必须更好地解释你想要的结果,因为你在问题中所拥有的不是一个简单的数组,而是一个数组数组。如果您需要一个对象数组,其中每个对象的值都是第1列和任何其他给定列,请更新您的问题。
要根据您的数据构建简单数组,您可以使用firstColumn,secondColumn,thirdColumn,fourthColumn
12,3,44,35
15,32,17,42
//...
。
所以,假设这是你的CSV:
var myArray = data.map(function(d){
return d.secondColumn;
});
例如,要构建具有第二列值的数组,请写:
function(data){...
在回调中(for(var i = 0; i < 100; i++){
newArray.push([i, myData[i].firstColumn])
};
)。
编辑:根据评论,这就是您想要的:
给定数据数组,您必须通过索引访问每个对象并按键选择相应的列。因此,要访问第一列中的值:
var myData = [{firstColumn: 4, secondColumn: 12, thirdColumn: 21, forthColumn: 11},
{firstColumn: 41, secondColumn: 22, thirdColumn: 71, forthColumn: 10},
{firstColumn: 10, secondColumn: 16, thirdColumn: 2, forthColumn: 15},
{firstColumn: 6, secondColumn: 32, thirdColumn: 7, forthColumn: 17},
{firstColumn: 33, secondColumn: 12, thirdColumn: 29, forthColumn: 19}];
var newArray = [];
for(var i = 0; i < 5; i++){
newArray.push([i, myData[i].firstColumn])
};
console.log(newArray)
对其他列执行相同操作。这是一个有效的演示:
BUILD -> Publish "Project Name"