Возвращать длины строк в скрипте Google Apps - PullRequest
1 голос
/ 11 января 2020

Я пытаюсь вернуть длину строк в диапазоне в Google Sheets.

Вот тестовые ячейки:

enter image description here

У меня есть пользовательская функция, которая должна возвращать длину каждой строки:

function returnLength(array) {
  var returnList = [];
  array.forEach(function(a) {
    returnList.push(a.length);
  });
  return returnList;
}

Когда я использую эту функцию в B1, она возвращает 1 для длины любого из них:

enter image description here

То, что меня отталкивает, это то, что если я опускаю ".length" в pu sh для resultArray, он возвращает правильные строки ...

function returnLength(array) {
  var returnList = [];
  array.forEach(function(a) {
    returnList.push(a);
  });
  return returnList;
}

enter image description here

Я знаю, что могу использовать LEN () для обработки этого примера, но это просто маленькая часть в действительно большом проекте, где я должен иметь возможность получить длину в коде.

1 Ответ

2 голосов
/ 11 января 2020

Я думаю, что причина вашей проблемы в том, что array - это двумерный массив, подобный [["This"],["Is"],["A"],["Test"],["Hello"],["World"]]. В случае returnList.push(a.length); возвращается длина массива, который является элементом двумерного массива. При этом все значения равны 1. Так как насчет этой модификации?

От:

returnList.push(a.length);

До:

returnList.push(a[0].length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...