尝试对数组数组中的一些数据进行排序,这些数据每次都可能不同。
即:
data = [
[ null, 1000, null, null, null ],
[ 2000, null, 3000, 4000, 5000 ]
]
我试图从这个数组中得到的是一组数组对,第一个数组中的第一个值是空的,应该在新数组中与 2000 配对,然后 1000 对是空的,也应该作为单独的数组配对等等。
预期结果:
data = [
[null, 2000],
[1000, null],
[null, 3000],
[null, 4000],
[null, 5000],
]
实际数据集在任何方向上都可以更大,即:
data = [
[ null, 1000, null, null, null, 6000, 7000 ],
[ 2000, null, 3000, 4000, 5000, null, null ]
[ 3423, null, 4545, 1435, 9898, null, 7643 ]
]
现在预期的配对是
data = [
[null, 2000, 3423],
[1000, null, null],
[null, 3000, 4545],
[null, 4000, 1435],
[null, 5000, 9898],
[6000, null, null],
[7000, null, 7643],
]
我知道它是一个多维数组,所以我循环遍历数据集,然后遍历该数据集中的每个数据数组,并尝试将每个数字推入一个新数组,但我所能实现的只是数据的平面版本,即:
data: [
[
null
],
[
1000
],
[
null
],
[
null
],
[
null
],
[
2000
],
[
null
],
[
3000
],
[
4000
],
[
5000
]
]
我的代码:
const test = [
[null, 1000, null, null, null],
[2000, null, 3000, 4000, 5000]
];
const testFunc = dataSet => {
const lineChartData = [];
dataSet.map(numbersSet =>
numbersSet.map(number => lineChartData.push([number]))
);
return lineChartData;
};
console.log("TEST", testFunc(test));
您可以组合 2 个地图来旋转 2d 数组
const test = [
[null, 1000, null, null, null],
[2000, null, 3000, 4000, 5000]
];
const test2 = [
[ null, 1000, null, null, null, 6000, 7000 ],
[ 2000, null, 3000, 4000, 5000, null, null ],
[ 3423, null, 4545, 1435, 9898, null, 7643 ]
]
const conv = (arr) => arr[0].map((_, i) => arr.map(r => r[i]));
console.log(conv(test))
console.log(conv(test2))