Javascript 将多个d3.js数据集合并到单个数据对象中

Javascript 将多个d3.js数据集合并到单个数据对象中,javascript,d3.js,underscore.js,Javascript,D3.js,Underscore.js,我正在构建一个应用程序,它允许用户在许多可能的数据集中指定一些要比较的数据集。因为每个变量都有数以百万计的观察值(我已经需要截断),所以我只希望浏览器加载用户请求的数据,而不是加载所有内容,只显示用户请求的内容 我还没有找到一个简单的方法将d3数据对象合并成一个更大的对象。下面是我将三个固定单列“csv”文件组合在一起所做的: queue().defer(d3.csv,“hdata1.txt”)//带有标题和数据的一栏文本文件 .defer(d3.csv,“hdata2.txt”)//如上所述

我正在构建一个应用程序,它允许用户在许多可能的
数据集中指定一些要比较的数据集。因为每个变量都有数以百万计的观察值(我已经需要截断),所以我只希望浏览器加载用户请求的数据,而不是加载所有内容,只显示用户请求的内容

我还没有找到一个简单的方法将d3数据对象合并成一个更大的对象。下面是我将三个固定单列“
csv
”文件组合在一起所做的:


queue().defer(d3.csv,“hdata1.txt”)//带有标题和数据的一栏文本文件
.defer(d3.csv,“hdata2.txt”)//如上所述,但具有不同的头和数据
.defer(d3.csv,“hdata3.txt”)//又是一个单列文件
.awaitAll(函数(错误、结果){
log(“输入数据”,结果);//输入数据[Array[5],Array[5],Array[5]]
var data=d3.transpose(results).map(函数(x){return}.extend(x[0],x[1],x[2]);
log(“输出数据”,数据),//输出数据[对象,对象,对象,对象,对象]
一些函数(数据);
});
函数some_func(数据){
//处理数据
};

这是可行的,但需要
d3.transpose
d3.map
.extend
来合理地组合对象似乎有些过分了。有没有更优雅的方法来合并多个d3数据对象?

简言之,没有。d3并没有提供明确合并不同数据集的函数。
<script src="d3.v3.js"></script>
<script src="queue.v1.js"></script>
<script src="underscore.v1.js"></script>
<script>

   queue().defer(d3.csv, "hdata1.txt") //one column text file with header and data
      .defer(d3.csv, "hdata2.txt") //as above, but with a different header and data
      .defer(d3.csv, "hdata3.txt") //yet another single column file
      .awaitAll(function(error, results){ 
         console.log("input data", results);  //input data [Array[5], Array[5], Array[5]]
         var data=d3.transpose(results).map(function(x){ return _.extend(x[0], x[1], x[2])} );
         console.log("output data", data), //output data [Object, Object, Object, Object, Object]
         some_func(data); 
      });

   function some_func(data){
      //do stuff with the data
   };
</script>