Перекомпоновать JavaScript массивы: m n-dim массивы -> матрица nxm - PullRequest
1 голос
/ 23 февраля 2020

Предположим, у меня есть следующая структура массива (скажем, для графика с 3 линиями):

let series1 = [1,2,3,4]
let series2 = [2,3,4,5]
let series3 = [2,6,6,7]

Но мне также нужна следующая структура (скажем, для таблицы jexcel):

let data = [ [1,2,2], [2,3,6], [3,4,6], [4,5,7] ]

Какой самый короткий способ создать А из В (или наоборот)?

1 Ответ

1 голос
/ 23 февраля 2020

Один из возможных способов создать желаемый результат - использовать комбинацию .map(), .forEach().

Ниже приведен мой пример:

let series1 = [1,2,3,4];
let series2 = [2,3,4,5];
let series3 = [2,6,6,7];

const arrays = ['series1', 'series2', 'series3'];

const result = series1.map((c,i) => {
  const a = [];      
  arrays.forEach(e => a.push(eval(e)[i]));      
  return a;   
});

console.log(result);

С предоставленным решением код ожидает, что все массивы последовательностей будут иметь одинаковую длину.

Надеюсь, это поможет!

...