我有以下代码的结果
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]
将所有元素简化为单个数组而不是多个。
我怎样才能做到这一点?任何帮助将不胜感激。
最佳答案
您可以使用 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
关于javascript - 将 Javascript 子数组缩减为单个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37683624/