簡體   English   中英

使用Google Apps腳本替換數組中的變音符號

[英]Replacing Diacritics in an Array with Google Apps Script

我們正在嘗試將工作表中的所有變音符號替換為對數據庫更友好的副本。 我希望能夠將在此找到的解決方案( 在JavaScript中刪除字符串中的重音符號/變音符號 )應用於數組。

我們已經訪問了“刪除Java字符串中的重音符號/變音符號”主題,該解決方案適用於一個單元格。 但是,當我嘗試使用當前代碼執行此操作時,它只會更改一個值並將其粘貼到整個數組中。 我究竟做錯了什么?

(其余代碼在鏈接中可見)

function removeDiacritics () {
  var range = "A2:B3";
  var array = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cleaner").getRange(range).getValues();
  var base = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cleaner").getRange(range);
  var newArray = [];

  for(var row=0;row<array.length;row++){
    for(var i=0;row<array[row].length;i++){

    var newText = array[row][i].replace(/[^\u0000-\u007E]/g, function(a){ 
      return diacriticsMap[a] || a;
    });
    newArray.push(newText);
  }
  }

      base.setValue(newArray);
}

回答:

您正在嵌套循環中遍歷不正確的計數器變量。

固定:

在嵌套循環中,為了更改要比較的數組元素,您需要更改:

for(var row=0;row<array.length;row++){
  for(var i=0;row<array[row].length;i++){
    // code
  }
}

至:

for(var row = 0; row < array.length; row++){
  for(var i = 0; i < array[row].length; i++){
    //code
  }
}

暫無
暫無

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

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