Google表格中的Javascript:将作为单元格范围的参数传递给函数

时间:2020-03-07 23:27:54

标签: javascript google-apps-script google-sheets

我正在尝试在Google表格中运行和测试此功能:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('NN');
var range_p = sheet.getRange('B32:J32');
var range_q = sheet.getRange('B33:J33');
kl_divergence(range_p, range_q);

function kl_divergence(range_p, range_q) {
  var norm = 0.00001;
  var i;
  var tot = 0.0;
  for (i = 0; i < range_p.length; i++){
    tot += range_p[i] * LOG((range_p[i] + norm) / (range_q[i] + norm));
  }
  return tot;
}

但我遇到此错误:

TypeError: Cannot read property 'length' of undefined (line 11, file "Code"

这是怎么回事,我该如何解决?

1 个答案:

答案 0 :(得分:0)

您使用的def unique_letters(words_list): return [''.join(dict.fromkeys(word)) for word in words_list] 函数返回Range类https://developers.google.com/apps-script/reference/spreadsheet/range

我认为您需要将其更改为:

def unique_letters(words_list):
    result = []
    for word in words_list:
        result.append(''.join(dict.fromkeys(word)))
    return result