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)
你的结果无效。你的结果无效。我就是这么想的。我就是这么做的,我就是这么想的。反正我就是这样做的。