javascript - 使用 Google Apps 脚本替换数组中的变音符号

标签 javascript google-apps-script google-sheets

我们正在尝试将工作表中的所有变音符号替换为对数据库更友好的对应符号。我希望能够将此处找到的解决方案 ( Remove accents/diacritics in a string in JavaScript ) 应用于数组。

我们已经访问过“在 Javascript 中删除字符串中的重音符号/变音符号”主题,并且该解决方案对于一个单元格非常有效。但是,当我尝试使用当前代码执行此操作时,它仅更改一个值并将其粘贴到整个数组。我做错了什么?

(其余代码在链接中可见)

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
  }
}

关于javascript - 使用 Google Apps 脚本替换数组中的变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58454427/

相关文章:

excel - 如何在 COUNTIFS 中使用 OR 条件?

javascript - 这里所做的权衡是什么? (推与数组)

javascript - 开/关按钮显示/隐藏内容

javascript - 将 coinmarketcap api v2 与 Google Sheets 结合使用 - 通过多次调用添加到 js 对象

javascript - 使用 Google Apps 脚本的 Plotly API

javascript - 使用应用程序脚本在谷歌电子表格中拆分(分开)合并表格单元格

google-apps-script - 将 gzip 压缩的数据导入 Google 表格

javascript - jquery 的 document.ready 函数在 android 中不起作用

javascript - 无法阻止被动事件监听器内的默认行为

google-apps-script - 使用 Google App Script 从 Google Drive 解压缩文件