gpt4 book ai didi

javascript - 如何动态创建数组来更新 ZingChart 树形图

转载 作者:行者123 更新时间:2023-11-29 10:33:47 26 4
gpt4 key购买 nike

我正在尝试为 ZingCharts 动态创建此数据数组,但被难住了。

基本上,我需要制作这个结构:

var series = [{
text: "Democratic",
style: {
backgroundColor: "blue"
},

children: [{
text: "California",
value: 55,
style: {
backgroundColor: "blue"
},

}, {
text: "Oregon",
value: 7,
style: {
backgroundColor: "blue"
},
}]
},
{
text: "Republican",
style: {
backgroundColor: "red"
},
children: [{
text: "Texas",
value: 38,
style: {
backgroundColor: "red"
},
}, {
text: "Georgia",
value: 16,
style: {
backgroundColor: "red"
},
}]
}, {
text: "TossUp",
style: {
backgroundColor: "grey"
},
children: [{
text: "Arizona",
value: 22,
style: {
backgroundColor: "grey"
},
}]
}, ]
}]
};

我不知道这样做的正确方法是什么。我很想做这样的事情:

result.push("text: '" + data[0].party + "'")

我需要对所有 50 个州执行此操作,并且数据采用如下结构:

var data = [{
"color": "blue",
"party": "Democratic",
"text": "California",
"value": 55,
}, {
"color": "blue",
"party": "Democratic",
"text": "Oregon",
"value": 7,
}, {
"color": "red",
"party": "Republican",
"text": "Texas",
"value": 38,
}, {
"color": "red",
"party": "Republican",
"text": "Georgia",
"value": 16,
}, {
"color": "grey",
"party": "Democratic",
"text": "Arizona",
"value": 11,
}];

任何关于我应该搜索什么的提示都将不胜感激。谢谢!

最佳答案

使用reduce 函数和哈希表 创建您想要的数据结构:

var data=[{color:"blue",party:"Democratic",text:"California",value:55},{color:"blue",party:"Democratic",text:"Oregon",value:7},{color:"red",party:"Republican",text:"Texas",value:38},{color:"red",party:"Republican",text:"Georgia",value:16},{color:"grey",party:"Democratic",text:"Arizona",value:11}];

var result = data.reduce(function(hash) {
return function(prev, curr) {
if (hash[curr.color]) {
hash[curr.color].children.push({
text: curr.text,
value: curr.value,
style: {
backgroundColor: curr.color
}
});
} else {
hash[curr.color] = {};
hash[curr.color].children = hash[curr.color].children || [];
prev.push({
text: curr.party,
style: {
backgroundColor: curr.color
},
children: hash[curr.color].children
});
hash[curr.color].children.push({
text: curr.text,
value: curr.value,
style: {
backgroundColor: curr.color
}
});
}
return prev;
};
}(Object.create(null)), []);

console.log(result);
.as-console-wrapper{top: 0;max-height: 100%!important;}

让我知道您对此的看法,谢谢!

关于javascript - 如何动态创建数组来更新 ZingChart 树形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40313671/

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