gpt4 book ai didi

javascript - 如何使用合并数组到d3可折叠树

转载 作者:行者123 更新时间:2023-12-03 07:33:03 24 4
gpt4 key购买 nike

我正在处理很多小的 JSON 文件。任务是将其表示为 d3 可折叠库的合并大 json 文件。从互联网上的资源中,我找到了一种使用以下脚本合并数组的方法:

(function($){
$.concat || $.extend({
concat: function(b,c){
var a=[];
for(var x in arguments)
if(typeof a == 'object') a = a.concat(arguments[x]);
return a;
}
});
})(jQuery);

function foo() {
$(function() {
var a = $.getJSON("clinical.json");
var b = $.getJSON("industry.json");
$finalObj = $.concat(a, b);
});
}

合并文件后,我尝试将结果设置到库中

 treeJSON = d3.json(foo(), function (error, treeData) { ...

但我收到以下错误:

1. GET http://localhost:63342/testMerg/undefined 404 (Not Found)
2. Uncaught TypeError: Cannot set property 'x0' of undefined

如果我清楚地了解第二个的本质,则导致 d3 没有构建树所需的资源,所以第一个我根本不理解。

我最终想要得到的是比较两个 JSON 文件,将它们合并到一个文件中并使用 d3 渲染它。

我试图在互联网上找到一些用于合并和比较 json 文件的库,但不幸的是,很不幸......有人能给我建议吗?

最佳答案

$.getJSON() 是异步的, $finalObj 不会被设置为 $.getJSON() 返回的串联数组,但是连接的 jQuery 对象。

尝试使用 $.when() 等待两个 $.getJSON() 调用完成后再连接响应,.then()在异步进程之后执行进程。

var res = [];

$.when($.getJSON(), $.getJSON())
.then(function(a, b) {
res = $.concat(a[0], b[0]);
return res
})
.then(function(data) {
// do stuff with `data` : `res`
})

关于javascript - 如何使用合并数组到d3可折叠树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35734212/

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