Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Создание нового массива. (https://javascript.ru/forum/dom-window/81272-sozdanie-novogo-massiva.html)

Hellishcode 02.11.2020 12:57

Создание нового массива.
 
Добрый день.
Есть массив любой длины, но массивы внутри него всегда будут иметь одинаковую длину. Например
const arr1 = [['a', 'b'], ['1', '2'], ['+', '-']]

или
const arr2 = [['a', 'b', 'c'], ['1', '2', '3'], ['+', '-', '*]]

Подскажите пожалуйста, как сделать так чтобы на входе функция принимала этот массив arr1 или arr2, а результат был следующего вида:
const result = [['a', '1', '+], ['b', '2', '-']]

или соответсвенно для arr2
const result = [['a', '1', '+], ['b', '2', '-], ['c', '3', '*']]

voraa 02.11.2020 13:27

Цитата:

Сообщение от Hellishcode
Есть массив любой длины, но массивы внутри него

А в примере внешние массивы имеют длину 3.
Что внутри, а что снаружи?

Но если, я правильно понял, то так

const arr1 = [['a', 'b'], ['1', '2'], ['+', '-']];
const arr2 = [['a', 'b', 'c'], ['1', '2', '3'], ['+', '-', '*']];

const conv = ([a, b, op]) => a.map((x, i) => [x, b[i], op[i]]);

console.log (conv(arr1));
console.log (conv(arr2));

Alexandroppolus 02.11.2020 20:13

Цитата:

Сообщение от voraa
А в примере внешние массивы имеют длину 3.

эта длина может быть любой

const conv = arr => arr[0].map((_, i) => arr.map(a => a[i]))


Часовой пояс GMT +3, время: 15:23.