gpt4 book ai didi

javascript - d3 将对象转换为数组

转载 作者:行者123 更新时间:2023-11-30 17:10:35 24 4
gpt4 key购买 nike

为此苦苦挣扎,并把所有类似的问题都变成了红色。

我正在使用 d3 库读取网页上的 csv。

我目前有这个:

  d3.csv("normal.csv", function(rows) {
doSomethingWithRows(rows);
});

function doSomethingWithRows(rows) {
// do something with rows
console.log(rows);
}

这输出我这个:

-所有行的数组

-每个索引作为对象(每一行是一个对象)

所以它是一个包含对象的数组。

我想要的是一个数组数组,这样我就可以引用二维数组之类的东西。

我查看了 jquery-csv,但这对转换为数组的数组没有帮助。还查看了 d3.csv.parser 但它也没有帮助。

任何想法

最佳答案

有几种方法可以了解您正在尝试做什么。

  1. 每个对象应对应于外部数组中的一个数组,该数组的长度不变。在这种情况下,您需要ma​​paccessor function(请参阅 d3.csv 文档)。

  2. 您想保留相同数量的元素,但用两个索引而不是一个索引排列它们。在这种情况下,我建议您将数据保持为一维,稍后再对索引进行数学计算。 D3 让数组索引在您需要时可用。

  3. 您想创建一个二维数组,其中每个元素都取自您拥有的数组中的多个对象。确切的转换取决于你想做什么,但我会看看 D3 docs for Arrays ,这有助于在顶部列出一些普通的 JavaScript 方法。尤其要注意 pairszip。您还可以查看 nest 数据结构。如果您想要网格或矩阵,请参阅 this example尤其是 cross 函数。

  4. (回应评论)您想使用 CSV 本身的二维结构。你基本上已经有了这个,除了内部数据结构是键值而不是索引。这利用了 CSV header 和 CSV 列通常是异构的并且不允许数字排序的事实。如果您真的想将值更改为数组,请使用映射或访问函数。除了d3.transpose,我真的不明白你为什么要这么做.

也就是说,D3 代码(或至少是最简单的 D3 代码)是围绕一维数据的。你应该好好想想你是否真的需要一个二维数组。很难直接进入 D3 并制作自己的图表;你最好读一些tutorials并了解它的工作原理和它的观点。

关于javascript - d3 将对象转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27097757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com