Javascript в листах Google: передача аргументов, представляющих собой диапазоны ячеек, в функцию - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь запустить и протестировать эту функцию в Google Sheets:

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 голосов
/ 08 марта 2020

используемая вами функция getRange() возвращает класс Range https://developers.google.com/apps-script/reference/spreadsheet/range.

Я думаю, вам нужно изменить его на:

var range_p = sheet.getRange('B32:J32').getValues();
var range_q = sheet.getRange('B33:J33').getValues();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...