我有一个简单的数组,其中包含每一类事物的和。简化版本:
var quantities = [{"type": "apple","number": 51},
{"type": "orange","number": 19},
{"type": "lemon","number": 11}];根据这些数据,我将为每件事物画一个圆圈,即用type=apple画51圈,橙色画19圈,柠檬画11圈。我想根据这个数据创建一个数组,每个对象都有一个条目-
dataset = [{apple},{apple},{apple}...]在d3中创建此数据集的最佳方法是什么?我一直在无缘无故地尝试数据映射函数。或者,是否有更好的方法可以根据原始数组绘制每个类别的正确数目,而无需数据集步骤?谢谢!
发布于 2015-07-18 18:18:55
您可以使用一些映射并将其转换为一行:
var quantities = [{"type": "apple","number": 51},
{"type": "orange","number": 19},
{"type": "lemon","number": 11}];
var joined = quantities.map(function(x) {
return Array.apply(null, new Array(x.number)).map(function (y) {
return x.type; }); }).reduce(function(prev, z) {
return prev.concat(z); }, [])
console.log(joined);如果你想知道Array.apply(null, new Array(x.number))…是什么这是一个成语,用来从指定长度的未初始化数组创建初始化数组,原因是前者是可映射的,而后者不是。
https://stackoverflow.com/questions/31493923
复制相似问题