如何从数组中删除引号

时间:2015-06-12 08:00:25

标签: javascript google-apps-script

我有一个脚本可以将数据从csv文件导入到Google表格中。我想包含以下内容以从数据中删除引号 - .replace(/" / g,"") - 但我不确定要添加的最佳位置/语法到现有的脚本。

我是否将其添加到我将csv数据转换为数组的部分 -

    function CSVToArray_(strData){
      var rows = strData.split("\n");
      //Logger.log(rows.length);
      var array = [];
       for(n=0;n<rows.length;++n){
        if(rows[n].split(',').length>1){ 
        array.push(rows[n].split(','));
        }
        }
    Logger.log(array);
    return array;

}

...或者使用数组数据更新工作表的部分?

 var impSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CtrlSht").getRange("B8:B8").getValue();
  var csvData = CSVToArray_(csvFile);// convert to 2D array
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName(impSheet);
      sheet.clear();
      sheet.getRange(1,1, csvData.length, csvData[0].length).setValues(csvData);// write to sheet in one single step 

非常感谢任何指导/建议。

1 个答案:

答案 0 :(得分:2)

上面的代码是危险的,如果元素中有逗号,即使它在引号中是有效的csv,也会中断。我建议您查看此库https://code.google.com/p/jquery-csv/。此外,您要删除引号还是要将字符串值转换为数字?也就是说,您收到"2"并希望它只是2,如果是这样,您可能只是想将其解析为数字,如下所示:parseInt("2")

如果您不关心上述内容,则以下内容应该有效:

function CSVToArray_(strData){
    var rows = strData.split("\n");
    //Logger.log(rows.length);
    var array = [];
    var array_inner;
    // iterate over rows
    for (n=0; n<rows.length; ++n) {
        array_inner = rows[n].split(',');
        if (array_inner.length>1) {    
            // iterate over columns
            for (m=0; m<array_inner.length; m++) {
                array_inner[m] = array_inner[m].replace(/"/g, ""); 
            }
            array.push(array_inner);
        }
    }
    Logger.log(array);
    return array

}