代码之家  ›  专栏  ›  技术社区  ›  onit

如何使用map(GAS)将这些字符串转换成小数?

  •  0
  • onit  · 技术社区  · 3 年前

    我试图确保结果列只包含数字,但它一直以字符串的形式出现。

    function moveColsWesbanco() {
      var ss = SpreadsheetApp.getActive();
      var sourceSheet = ss.getSheetByName('Sheet1');
      var destSheet = ss.getSheetByName('New Entry');
      var debitsCredits = sourceSheet.getRange('A7:D');
      var values = debitsCredits.getValues();
      let amounts2 = values.filter(o => o[0] != '').map(e => e[2] != '' ? e[3] = Number.parseFloat(e[2]) : Number.parseFloat(e[3]));
      let allTypes = [];
      for (val in amounts2) {
        allTypes.push(typeof val)
      };
      Logger.log('Types within it: ' + allTypes)
      return;
    }
    

    以下是日志: enter image description here

    所以我想知道我错过了什么。非常感谢。

    1 回复  |  直到 3 年前
        1
  •  0
  •   Tanaike    3 年前

    “我想”用在 for (val in amounts2) {} , val 是索引。而且是字符串类型。我认为这就是你问题的原因。在这种情况下,使用下面的“for of”怎么样?

    修改脚本:

    for (var val of amounts2) {
      allTypes.push(typeof val)
    };
    

    参考资料: