我有一个看起来像这样的数据
console.log(this.x) //[Array(963), Array(964), Array(954)]
console.log(typeof this.x[0]) //object
现在,我想将对象中的所有这3个数组合并为一个数组。
[问题:] 我该怎么做?
旁注console.log(this.x)
也可以包含5或6个数组。
[更新:] 我只想要值对,而不想要数组中的键。
这是打开数组时数据的外观
console.log(this.x[0]) //
Array(963)
>[0 … 99]
0: 23244
1: 2324610.25
2: 2035083.25
3: 1807027.25
4: 1931790
5: 1507934.25
6: 1547601
7: 1443744.5
8: 1417907.5
9: 1124118
10: 1110016.625
对于console.log(this.x[1])
1: Array(964)
>[0 … 99]
0: 45877.59766
1: 0
2: 0
3: 50099.19141
4: 0
5: 0
我希望它是仅具有值的单个数组 像这样说
[23244, 2324610.25, 2035083.25 ... , 1124118, 1110016.625, 45877.59766, 0, 0, 50099.19141, 0, 0]
答案 0 :(得分:4)
您可以使用Array.prototype.flat()。
flat()
方法将创建一个新数组,其中所有子数组元素都将递归地连接到其中,直到指定的深度为止。
var x = [[1,2],[3,4],[5,6]];
x = x.flat();
console.log(x);
答案 1 :(得分:2)
有很多方法可以实现这一目标。我在下面列出了一些。
var a = [[1,2], [1,2], [1,2]];
console.log(a.flat());
console.log([].concat(...a));
console.log(a.reduce((c,d) => c.concat(d), []));
答案 2 :(得分:2)
您正在寻找的操作称为“展平”。有一种https://github.com/googlesamples/android-architecture-components/issues/20方法可以做到这一点。
const x = [[1,2,3],[3,4]]
console.log(x.flat())
答案 3 :(得分:0)
尝试一下。
const arr = [[1,2], [2,3], [1,2]];
const flat = arr.reduce((acc, val) => acc.concat(val), []);
console.log(flat);