Javascript D3数据结构?(便于查找、数据操作和选择)

Javascript D3数据结构?(便于查找、数据操作和选择),javascript,data-structures,d3.js,Javascript,Data Structures,D3.js,我正在探索有助于开发更大D3应用程序的数据结构和库 我从多个csv文件中获取数据,并希望以一致的方式(数组/对象/其他)将数据存储在javascript中,以便简化查找、数据操作和D3选择使用 我目前正在考虑使用如下键存储数据: var people = { A : { id: 'A', name: 'Joe'}, B : { id: 'B', name: 'Sam'}, C : { id: 'C', name: 'Eve'} }; 通过

我正在探索有助于开发更大D3应用程序的数据结构和库

我从多个csv文件中获取数据,并希望以一致的方式(数组/对象/其他)将数据存储在javascript中,以便简化查找、数据操作和D3选择使用

我目前正在考虑使用如下键存储数据:

var people = {
        A : { id: 'A', name: 'Joe'},
        B : { id: 'B', name: 'Sam'},
        C : { id: 'C', name: 'Eve'}
    };
通过这种方式,我可以快速查找,也可以使用例如d3.values()轻松展平结构

有更好的选择吗?

这种方法的优点和缺点是什么?

它实际上取决于您的应用程序需要什么样的数据结构,所以这个问题没有一般的答案。看起来您所拥有的非常适合于D3中最常见的操作,即

  • 将数据传递到
    .data()
    以附加/更新元素——为此,您需要一个数组,但您的数据结构可以通过使用例如
    d3.entries()
    轻松转换为数组
  • 交叉引用来自其他对象的数据——这通常是通过查找来完成的,您的数据结构也适用于查找,因为它按ID索引

谢谢,我意识到这有点模糊。不过,欢迎提供所有线索!还有自定义数据结构实现:)ps。为什么要使用d3.entries而不是d3.values?在您的情况下,
d3.values()
就足够了,因为您在键和值中都有ID。