materializecss在Google脚本网络应用的第二条记录后添加“,”(逗号)

时间:2019-07-13 04:56:06

标签: javascript google-apps-script materialize

在这里具有实体化功能的菜鸟。 在使用gscripts的网络应用程序上工作时,我从Google表格中获得了一个学生的记录集(付款和发票),并使用该信息填充了2个物化表。该代码可以正常工作,但是由于某种原因,第一行之后分别向每个表中添加了一个,我无法弄清楚它的来源

enter image description here 我的代码与发票一起使用(“ Facturas”左侧的表格)

//get invoices with id
function getInvoicesForID(studentAltID) {
  var invoicesForID = [];
  //get general invoices sheet and values
  var sInvoices = ss.getSheetByName("Invoices");
  var dataInvoices = sInvoices.getDataRange().getValues();
  //get invoices info for id onto returning array. !!note date needs to be a string!!
  for(var i = 0; i < dataInvoices.length; i++){
    if(dataInvoices[i][4]==studentAltID){
      var invDate = Utilities.formatDate(dataInvoices[i][0],"GMT+1","yyyy-MM-dd");
      invoicesForID.push([invDate.toString(),dataInvoices[i][1],dataInvoices[i][2],dataInvoices[i][3]]);
    }
  }
  Logger.log(invoicesForID);
  return invoicesForID;
}

记录器带有返回发票数组中的数据,显示以下内容:

[19-07-13 00:46:48:608 EDT] [[2019-01-31,34073.0,Matricula 2019,298854.0],[2019-02-01,34337.0, Pension 2019年2月,130171.0],[2019-03-01,34603.0,Pension Mar 2019,130171.0],[2019-04-01,34872.0,Pension Abr 2019,130171.0],[2019-05-01,35138.0,May Pension 2019,130171.0],[2018-08-31,1051.0,Asistencia 2018,508972.0],[2019-06-01,35403.0,2019年6月退休金,130171.0],[2019-07-01,35667.0,2019年7月退休金,130171.0 ]]

更新html付款表的tbody部分的我的javascript是这个

//get each item invoiced so far for student and create rows with the data to display in html
  function getInvoices(stIDInvData) {
    try{
      //if data was received updated the textboxes of the page with the info retrieved.
      if (stIDInvData != null){
        document.getElementById("tableInvoices").innerHTML += stIDInvData.map(function(row){
        return "<tr><td>" + row[0] + "</td><td>" + row[1] + "</td><td>" + row[2] + "</td><td>" + formatMoney(row[3]) + "</td></tr>";
        });       
      }
    }catch(e){
      alert("getInvoices error" + e);
    }
  }

和该表的index.html是这样的:

<div class="input-field col s6">
          <table class="highlight">
            <thead>
              <tr>          
                <th>Fecha</th>
                <th>Referencia</th>
                <th>Memo</th>
                <th>Valor</th>
              </tr>
            </thead>
            <tbody id="tableInvoices">
            <!--content created dinamically -->
            </tbody>
          </table>
        </div>  

感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:2)

map返回一个字符串数组。由于您要为innerHTML分配一个数组,因此使用toString()将数组强制为字符串,并添加逗号分隔符。

您可以join map返回的带有空字符串的数组,如下所示:

document.getElementById("tableInvoices").innerHTML += stIDInvData.map(function(row) {
  return "<tr><td>" + row[0] + ....;
}).join(' ') // <--

以下是演示此问题的有效片段:

const array = [1, 2, 3, 4]

document.querySelector('#array').innerHTML += array
document.querySelector('#joined').innerHTML += array.join(' ')
<span id="array"></span><br>
<span id="joined"></span>