JavaScript转换数据

JavaScript转换数据,javascript,arrays,sorting,Javascript,Arrays,Sorting,我正在做一些数据的工作,我需要一个函数,将转置后,数据处理完成。现在的数据是这样的 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" "

我正在做一些数据的工作,我需要一个函数,将转置后,数据处理完成。现在的数据是这样的

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"';

将该数据作为字符串转换为二维数组(或表格、矩阵等),然后可以将其重新连接到字符串:

 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");

那么你把这些数据作为一个字符串?你试图解决什么问题?你在得到想要的结果时有什么特别的问题?你需要展示一些你已经尝试过的东西。相关:这不是一个完整的答案,而是一个关于我该怎么做的提示:你输入的每一行几乎都是一个字母,只是两端都没有
[
]
字符。将为您处理边缘大小写(如字符串中的逗号)。那么这只是一个问题。@mplungjan“parse csv in js”会产生很多结果,大多数结果都使用一些非常复杂的正则表达式/替换项。在我看来,您的解决方案非常优雅……如果输入中的一个字符串包含逗号,则此操作将失败。我可以操作文本并将逗号替换为。所以这是可行的。你能把这段代码放到jsfiddle.net中让我看到它的工作吗?我选择这个答案作为最佳答案,但我不能让它在fiddle上工作。