簡體   English   中英

Javascript:如何遍歷數據 object 並創建逗號分隔文件

[英]Javascript: How to loop through data object and create a comma separated file

我想用我有的幾個輸入字符串創建一個逗號分隔的文件,想知道是否有更簡單的方法來做到這一點。 我的輸入是變量和數據對象的組合。

  var textarray = [];
  for(var i = 0; i<data.length; i++){ //data is my object
    var sms = ('#TxtMessage').val();
    var date = ('#datetxt').val()
    var code = ('#code').val()
    var type = data[i].producttype;
    var mixer = data[i].mixer;
    var quality = data[i].quality;
    textarray.push();
  }

但它作為一個連續的字符串列表進入。 我希望每個循環到 go 作為單獨的行,然后轉換為 csv。 我試圖把它放在一個數組中,然后轉換為文本,但如果我們可以直接做到這一點,我會接受

您需要 append 在每個循環迭代中將所有項目(逗號分隔)轉換為一個字符串並將其推送到您的textarray變量。

在循環之后,使用換行符轉義序列 (\n) 加入textarray

 var textarray = []; var getRandValue = () => { var fakeValues = ['Lorem', 'Ipsum', 'Dolar', 'Sit', 'Amet', 'Bla', 'bla'] return fakeValues[Math.floor(Math.random() * fakeValues.length)] } for(var i = 0; i < 10; i++){ //data is my object var sms = getRandValue() var date = getRandValue() var code = getRandValue() var type = getRandValue() var mixer = getRandValue() var quality = getRandValue() var csvLine = `${sms}, ${date}, ${code}, ${type}, ${mixer}, ${quality}` textarray.push(csvLine) } var resultCSV = textarray.join('\n') var output = document.getElementById('output') output.innerText = resultCSV
 <div id="output"></div>

您可以交替使用map加入陣列原型。

處理后得到 csv 字符串

 const data = [{ producttype: 'type1', mixer: 'mixer1', quality: 'quality1' },{ producttype: 'type2', mixer: 'mixer2', quality: 'quality2' },{ producttype: 'type3', mixer: 'mixer3', quality: 'quality3' }]; const sms = $('#TxtMessage').val(); const date = $('#datetxt').val() const code = $('#code').val(); const csvStr = data.map(m => [sms, date, code, m.producttype, m.mixer, m.quality].join(',')).join('\r\n'); console.log(csvStr);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="hidden" id="TxtMessage" value="TxtMessage"/> <input type="hidden" id="datetxt" value="datetxt"/> <input type="hidden" id="code" value="code"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM