JavaScript транспонировать данные - PullRequest
1 голос
/ 06 июля 2019

Я выполняю некоторую работу с данными, и мне нужна функция, которая будет транспонирована после завершения манипулирования данными. Сейчас данные выглядят так:

var string ='"EMAIL","PHONE","ADDRESS","AREA"
"something@gmail.com","1 123 456","Some St. 1","700"
"something1@gmail.com","1 123 789","Some St. 2","800"
"something2@gmail.com","1 123 654","Some St. 3","900"
"something3@gmail.com","1 123 987","Some St. 4","1000" ';

Мне нужна функция, которая преобразует эти данные в это:

var string = '"EMAIL","something@gmail.com","something1@gmail.com","something2@gmail.com","something3@gmail.com"
"PHONE","1 123 456","1 123 789","1 123 654","1 123 987"
"ADDRESS","Some St. 1","Some St. 2","Some St. 3","Some St. 4"
"AREA","700","800","900","1000"';

1 Ответ

2 голосов
/ 06 июля 2019

Превратите эти данные в виде строки в двумерный массив (или таблицу, матрицу, ...), затем вы можете транспонировать матрицу и присоединить ее обратно к строке:

 const transpose = array => array[0].map((col, i) => array.map(row => row[i]));

  const result = transpose(
    data.split("\n").map(row => row.split(","))
  ).map(row => row.join(",")).join("\n");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...