Скрипт Google Apps для объединения массивов в виде столбцов вместо строк - PullRequest
3 голосов
/ 12 апреля 2020

Фон

В Google Apps Script я хотел бы создать новый массив, который объединяет два массива по вертикали как столбцы, а не как дополнительные строки. Я понимаю, что довольно просто добавить дополнительные строки, используя .concat или .pu sh, но это расширяет массив по вертикали.

Вот код:

var ar1 = [[1,3,5],
           [2,4,6]];

var ar2 = [[7,9,11],
           [8,10,12]];

Желаемый результат

При запуске ar3 я хотел бы, чтобы желаемый результат был:

[[1,3,5,7,9,11]
 [2,4,6,8,10,12]]

Вещи, которые я пробовал

Я думаю, что это может запускаться как функция через concat. Я пробовал что-то подобное ниже, но безрезультатно:

var ar3 = ar2.forEach(function (row){ ar1.concat([row[0],row[1],row[2]]); });

Можно ли сделать это еще проще с .map и return? (Я знаю, что ниже очень неправильно, но просто пример.)

var ar3 = ar1.map(function (row){ return ar1[row].concat(ar2[row]); });

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Используйте индекс map вот так:

var ar1 = [[1,3,5],
       [2,4,6]];

var ar2 = [[7,9,11],
       [8,10,12]];

const out = ar1.map((row,i) => row.concat(ar2[i]))

console.info(out)
0 голосов
/ 17 апреля 2020

Вы можете сделать это без использования concat:

var ar1 = [
  [1, 3, 5],
  [2, 4, 6]
];

var ar2 = [
  [7, 9, 11],
  [8, 10, 12]
];



const result = ar1.map((x, i) => [...x, ...ar2[i]]);
console.log('result', result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...