如何映射数据,以便我可以使用它来生成饼图?
我想知道如何映射2个数组的数据,以便我可以使用这些数据来生成使用d3.js的图表
目前我有2个arrays:
wordsArray = {"THE","MAIN","PURPOSE","OF","PHOTOSYNTHESIS","IS","TO","MAKE", "FOOD","FOR","PLANT","IT","PRODUCE","SUGAR","MANUFACTURE"}; computationArray = {6,1,2,2,1,3,3,1,3,4,4,2,1,2,1};
单词arrays包含所有不同的单词,并且计算arrays包含每个单词出现的次数。
我想知道是否有任何捷径使它看起来像这样:
var data = [{"words":"THE", "count": "6"}, {"words":"MAIN", "count": "1"}, {"words":"PURPOSE", "count": "2"}, {"words":"OF", "count": "2"}.... ];
谢谢!
你要找的是d3中的zip函数:
d3.zip(wordsArray, computationArray).map(function(e) { return { words: e[0], count: e[1] }; });
快捷方式被称为underscore.js
npm安装下划线
使用这个好的lib,你可以这样做:
var data = _.map(_.zip(wordsArray, computationArray), function(v){ return {words: v[0], count: v[1]}; });