gpt4 book ai didi

javascript - 使用 d3.js 从数字数组创建数据集

转载 作者:行者123 更新时间:2023-11-29 10:39:36 24 4
gpt4 key购买 nike

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

var quantities = [{"type": "apple","number": 51}, 
{"type": "orange","number": 19},
{"type": "lemon","number": 11}];

根据这些数据,我将为每个事物绘制一个圆圈,即 type=apple 的 51 个圆圈,19 个圆圈代表橙色,11 个圆圈代表柠檬。我想基于此数据创建一个数组,每个对象都有一个条目 -

dataset = [{apple},{apple},{apple}...]

在 d3 中创建此数据集的最佳方法是什么?我一直在尝试数据映射功能,但没有成功。或者有没有更好的方法来根据我的原始数组绘制每个类别的正确数量,而无需数据集步骤?谢谢!

最佳答案

您可以使用一些 maps 和 reduces 在一行中转换它:

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))...这是一个从指定长度的未初始化数组创建初始化数组的习惯用法,对于前者是可映射而后者不是的原因。

关于javascript - 使用 d3.js 从数字数组创建数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31493923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com