Я пытаюсь написать пользовательскую функцию Google Spreadsheets в приложении, которая будет принимать массив («диапазон») произвольных измерений и возвращать уникальные значения в одном столбце. Функция принимает необязательный аргумент transpose
, который должен сортировать вывод по строкам вместо столбцов.Как сгладить и перенести массив в AppsScript
Я получил этот полу-работает, но метод transpose
работает только на квадратные массивы:
function GETUNIQUES(range, transpose) {
traspose = transpose || !0;
if (transpose) {
range = range.map(function(col, i) {
return range.map(function(row) {
return row[i];
});
});
}
var flat = [];
var clean = [];
for (i = 0; i < range.length; i++) {
for (j = 0; j < range[i].length; j++) {
flat.push(range[i][j]);
}
}
for (i = 0; i < flat.length; i++) {
flat[i] = String(flat[i]);
if (flat[i].length && clean.indexOf(flat[i].trim()) < 0) {
clean.push(flat[i].trim());
}
}
return clean;
}
Может кто-нибудь помочь мне с решением для transpose
метода, который следует порядок строк без усечения результатов?