对来自多个数组的数字[重复]

问题描述 投票:0回答:1

尝试对数组数组中的一些数据进行排序,这些数据每次都可能不同。

即:

data = [
   [ null, 1000, null, null, null ],
   [ 2000, null, 3000, 4000, 5000 ]
]

我试图从这个数组中得到的是一组数组对,第一个数组中的第一个值是空的,应该在新数组中与 2000 配对,然后 1000 对是空的,也应该作为单独的数组配对等等。

Expected Pairs

预期结果:

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));
javascript arrays multidimensional-array
1个回答
0
投票

您可以组合 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))

© www.soinside.com 2019 - 2024. All rights reserved.