我的问题对我来说似乎很简单,我无法理解为什么我在网上找不到答案。如果已经回答了一千次,那么事先真的很抱歉,也许我只是没有正确的措辞。
我正在使用d3.js中的json格式化数据。
dataset = [
{"category":"Fiction", "popularity":20},
{"category":"Thriller", "popularity":45},
{"category":"Romance", "popularity":12}
];
据我所知,某些d3.js函数需要一个简单的数组。
示例1:对于条形图,我的d3.scale.ordinal().domain(data)
需要一个带有[“小说”,“惊悚片”,“浪漫”的数组]
示例2:对于饼图,d3.layout.pie(data)
函数需要一个包含[20,45,12]的数组
这些函数迫使我通过简单的for loop
将“category”或“popular”中的所有值提取到一维数组中,这看起来很愚蠢。
使用json中的一个变量的值提取数组是否有更优雅和快速的解决方案?
非常感谢你的帮助! 泽维尔
答案 0 :(得分:3)
使用
var category = dataset.map( function( obj ) { return obj.category; } );
var popularity = dataset.map( function( obj ) { return obj.popularity; } );
类别和流行度数组将包含您需要的值。
但是,for循环可能是一种更快的实现。