Скрипт Google Apps: как запустить функцию разделения на двумерном массиве и сохранить одинаковые номера столбцов - PullRequest
1 голос
/ 13 апреля 2020

Я запускаю функцию разделения для столбца массива в Google Apps Script, который, в свою очередь, создает несколько столбцов. Количество столбцов варьируется в зависимости от того, сколько раз срабатывает разделитель, который варьируется. Например, некоторые строки будут иметь 6 столбцов, а другие - 4.

Я бы хотел, чтобы выходной массив имел четное число столбцов, поэтому строки с меньшим количеством столбцов должны быть расширены без использования дополнительные столбцы.

Как мне установить это в уравнение? Текущее уравнение, которое я использую, выглядит следующим образом.

var splitarray = originalarray.map(function (row){ return row[0].split(" ") });

Запись этой переменной может привести меня к следующему:

[[1,2,3],
 [1,2,3,4]]

И вместо этого я хочу, чтобы вывод был (в этом примере):

[[1,2,3,],
 [1,2,3,4]]

Чтобы все массивы имели одинаковое количество столбцов.

PS Я знаю, что это можно сделать в самой электронной таблице, но это часть более крупной операции, которую я выполняю в сценарии.

1 Ответ

0 голосов
/ 13 апреля 2020
  • Рассчитать максимальный размер строки на карте
  • Исправить length каждой строки, используя рассчитанный максимальный размер

const originalarray = [["1,2,3"],["1,2,3,4"]];
let maxSplit = 0;
const splitarray = originalarray.map(function (row){ 
    const s =  row[0].split(",");
    maxSplit = Math.max(maxSplit, s.length);
    return s;
});
splitarray.forEach(row=>row.length=maxSplit);
console.info(splitarray)
...