我有一个电影数据库,我想按类型嵌套。问题是每部电影都可以有多种类型。所以,如果我有几部电影格式如此
[
{
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' } ]
}
]
答案 0 :(得分:2)
不是直接的,但您可以扩展数组
例如:
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)