gpt4 book ai didi

javascript - 将 Clusterfck 数组转换为 JavaScript InfoVis Toolkit json 层次结构

转载 作者:行者123 更新时间:2023-11-29 10:48:14 25 4
gpt4 key购买 nike

目前我正在使用 javascript 库 Clusterfck执行数据分组。该库生成以下格式的数组:

[
{"canonical":[20,120,102],
"size":1
},
{"canonical":[250,255,253],
"left":{
"canonical":[250,255,253],
"size":1
},
"right":{
"canonical":[255,255,240],
"size":1
},
"size":2
},
{"canonical":[100,54,300],
"size":1
}
]

但用于数据可视化的 javascript 库如何使用 D3.js 和 Jit使用如下所示的 JSON 结构:

{
"canonical":"Pai",
"children":[
{"canonical":[20,120,102], "size":1},
{
"canonical":[250,255,253],
"children": [
{"canonical":[250,255,253], "size":1},
{"canonical":[255,255,240], "size":1}
],
"size":2
},
{
"canonical":[100,54,300],
"size":1
}
]
}

我想使用 JavaScript 或 PHP 转换这些结构。谁能帮帮我?

最佳答案

如果您只想在这些结构之间进行转换,这非常简单。查看工作 fiddle :http://jsfiddle.net/nrabinowitz/vuk94/

function convert(input, rootName) {
// top level
if (Array.isArray(input)) {
return {
"canonical": rootName,
"children": input.map(convert)
};
}
// node
else {
['left', 'right'].forEach(function(side) {
if (input[side]) {
input.children = input.children || [];
input.children.push(convert(input[side]));
delete input[side];
}
});
return input;
}
}

这使用了一些 ECMAScript 1.5 特性(Array.isArrayforEachmap),但是如果您使用的是 d3无论如何,您可能正在定位支持此功能的浏览器。

关于javascript - 将 Clusterfck 数组转换为 JavaScript InfoVis Toolkit json 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15283771/

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