我有以下代码的结果
d3.csv("../hello.csv", function(data) {
console.log(data);
var usable = data.map(function (d) {
return {
description: d.description.split(" ")
};
});
console.log(usable);
});
当我展开它时,可用的控制台日志是[object, object, object]
是
0:Object
description: Array[3]
0 : "A"
1 : "B"
2 : "C"
1:Object
description: Array[3]
0 : "D"
1 : "E"
2 : "FG"
2:Object
description: Array[5]
0 : "AD"
1 : "BD"
2 : "DC"
4 : "HH"
我需要的是单个数组,如下所示:
[A,B,C,D,E,FG,AD,BD,DC,HH]
将所有元素简化为单个数组而不是多个。
我怎样才能做到这一点?任何帮助将受到高度赞赏。
答案 0 :(得分:2)
您可以使用D3.merge()
展平数组。假设这些是你的对象:
var obj1 = {description: [1,2,3]}
var obj2 = {description: [10,20,30,40]};
var obj3 = {description: [100,200,300,400,500]};
var array = [obj1, obj2, obj3]; // your array
所以这会产生你描述的输出:
console.log("array", array);
您可以使用d3.merge(array)
将多个数组合并为一个:
var flattened = d3.merge([obj1.description, obj2.description, obj3.description]);
console.log("flattened", flattened);
它将打印:
flattened [1, 2, 3, 10, 20, 30, 40, 100, 200, 300, 400, 500]
请参阅:JSFiddle
答案 1 :(得分:1)
为什么不:
-------------------
X_ID | Y_ID
-------------------
2 | 8
2 | 12
--------------------