从一个json变量中提取数组

时间:2013-06-10 12:04:34

标签: javascript json d3.js

我的问题对我来说似乎很简单,我无法理解为什么我在网上找不到答案。如果已经回答了一千次,那么事先真的很抱歉,也许我只是没有正确的措辞。

我正在使用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中的一个变量的值提取数组是否有更优雅和快速的解决方案?

非常感谢你的帮助! 泽维尔

1 个答案:

答案 0 :(得分:3)

使用

var category = dataset.map( function( obj ) { return obj.category; } );
var popularity = dataset.map( function( obj ) { return obj.popularity; } );

类别和流行度数组将包含您需要的值。

但是,for循环可能是一种更快的实现。