首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用d3.js从数字数组创建数据集

用d3.js从数字数组创建数据集
EN

Stack Overflow用户
提问于 2015-07-18 17:54:35
回答 1查看 940关注 0票数 3

我有一个简单的数组,其中包含每一类事物的和。简化版本:

代码语言:javascript
运行
复制
var quantities = [{"type": "apple","number": 51}, 
{"type": "orange","number": 19}, 
{"type": "lemon","number": 11}];

根据这些数据,我将为每件事物画一个圆圈,即用type=apple画51圈,橙色画19圈,柠檬画11圈。我想根据这个数据创建一个数组,每个对象都有一个条目-

代码语言:javascript
运行
复制
dataset = [{apple},{apple},{apple}...]

在d3中创建此数据集的最佳方法是什么?我一直在无缘无故地尝试数据映射函数。或者,是否有更好的方法可以根据原始数组绘制每个类别的正确数目,而无需数据集步骤?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-18 18:18:55

您可以使用一些映射并将其转换为一行:

代码语言:javascript
运行
复制
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))…是什么这是一个成语,用来从指定长度的未初始化数组创建初始化数组,原因是前者是可映射的,而后者不是。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31493923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档