使用JavaScript将Array Value列明智地保存到CSV文件



尝试使用JavaScript将我的数组值保存到CSV文件列。现在,我的代码保存数组值行明智。

当前输出 -

  • country1,country2,country3,country4
  • Capital1,Capital2,Capital3,Capital4,
  • 货币1,货币2,货币3,货币4

所需的输出 -

  • Country1,Capital1,Currency1
  • Country2,Capital2,Currency2
  • Country3,Capital3,Currency3
  • Country4,Capital4,Currency4

到目前为止我的代码 -

<form>
    <input id="download" type="button" value="Download">
</form>
function downloadableCSV(rows) {
  var content = "data:text/csv;charset=utf-8,";
  rows.forEach(function(column, index) {
   content = content + column.join(",") + "n";
  });
  return encodeURI(content);
}
var country = ["England","Australia","Mexico","Brazil","Spain","Portugal","Italy","Thailand","Japan"];
var capital = ["London","Canberra","Mexico City","Brasilia","Madrid","Lisbon","Rome","Bangkok","Tokyo"];
var currency = ["Pound","Dollar","peso","Brazilian real","Euro","Euro","Euro","Thai baht","Japanese yen"];
var continent = ["Europe","Australia","NorthAmerica","SouthAmerica","Europe","Europe","Europe","Asia","Asia"];
var language = ["English","English","Spanish","Portuguese","Spainish","Portuguese","Italian","Thailand","Japanese"];
var heading =  ["Country","Capital","currency","continent","language"];
var rows = [[heading],[country],[capital],[currency],[continent],[language]];
$("#download").click(function() {
  window.open(downloadableCSV(rows));
});

我以前尝试使用过各种功能,但没有成功。任何帮助将不胜感激。

要对数据进行分组,您可以从lodash(https://lodash.com/docs/4.17.4#zip)使用zip

这是工作JS代码(https://jsbin.com/ditododosime/edit?html,js,output):

function downloadableCSV(heading, rows) {
  var content = "data:text/csv;charset=utf-8,";
  var dataRows = rows.map(function(columnValues, index) {
    return columnValues.join(",");
  });
  content += heading + "n" + dataRows.join("n");
  return encodeURI(content);
}
var country = ["England","Australia","Mexico","Brazil","Spain","Portugal","Italy","Thailand","Japan"];
var capital = ["London","Canberra","Mexico City","Brasilia","Madrid","Lisbon","Rome","Bangkok","Tokyo"];
var currency = ["Pound","Dollar","peso","Brazilian real","Euro","Euro","Euro","Thai baht","Japanese yen"];
var continent = ["Europe","Australia","NorthAmerica","SouthAmerica","Europe","Europe","Europe","Asia","Asia"];
var language = ["English","English","Spanish","Portuguese","Spainish","Portuguese","Italian","Thailand","Japanese"];
var heading =  ["Country","Capital","currency","continent","language"];
var rows = _.zip(country,capital,currency,continent,language);
window.open(downloadableCSV(heading,  rows));

最新更新