D3.js 数组可以用作d3嵌套键吗?

D3.js 数组可以用作d3嵌套键吗?,d3.js,D3.js,我有一个电影数据库,我想按类型嵌套。问题是每部电影可以有多种类型。如果我有几部电影的格式是这样的 [ { title : 'foo', genres : ['Action', 'Comedy', 'Thriller'] },{ title : 'bar', genres : ['Action'] } ] 我想把它们按每一种体裁分类,这样结果会更好 [ { key: 'Action',

我有一个电影数据库,我想按类型嵌套。问题是每部电影可以有多种类型。如果我有几部电影的格式是这样的

[
    {
        title  : 'foo',
        genres : ['Action', 'Comedy', 'Thriller']
    },{
        title  : 'bar',
        genres : ['Action']
    }
]
我想把它们按每一种体裁分类,这样结果会更好

[
   {
       key: 'Action',
       values: [ { title: 'foo' }, { title: 'bar'} ]

   },{
       key: 'Comedy',
       values: [ { title: 'foo' } ]

   },{
       key: 'Thriller',
       values: [ { title: 'foo' } ]

   }
]

不直接,但您可以扩展阵列

例如:

jj = [{ genre: ['thriller', 'comedy'], title: 'foo'}, { genre: ['thriller', 'action'], title: 'papa'}]
要扩展阵列,请执行以下操作:

jj2  = []
jj.forEach(function(movie) { movie.genre.forEach( function(single_genre) { jj2.push({ language: movie.language, genre: single_genre, title: movie.title } ); } ); })
然后可以正常执行嵌套:

d3.nest().key(function(d) { return d.genre; }).entries(jj2)

不直接,但您可以扩展阵列

例如:

jj = [{ genre: ['thriller', 'comedy'], title: 'foo'}, { genre: ['thriller', 'action'], title: 'papa'}]
要扩展阵列,请执行以下操作:

jj2  = []
jj.forEach(function(movie) { movie.genre.forEach( function(single_genre) { jj2.push({ language: movie.language, genre: single_genre, title: movie.title } ); } ); })
然后可以正常执行嵌套:

d3.nest().key(function(d) { return d.genre; }).entries(jj2)

你的结果无效。你的结果无效。我就是这么想的。我就是这么做的,我就是这么想的。反正我就是这样做的。