Задать вопрос
@architawr
"Ok, Google" и все твои проблемы решены

Как «распотрошить» массив?

Здравствуйте, тостеровчане, уповаю на Вашу помощь!
Есть несколько массивов вида
[ '6', 'Shorter', '157' ]
[ '7', 'Fraser', '157' ]
.......

Необходимо из одного массива сделать 3 ,вроде этого:['6','7',....], ['Shorter','Fraser',....],['157','157',....]
Я никак не могу это сделать, пытался разделить с помощью slice/push, но получается множество массивов с одним элементом.
Заранее спасибо
  • Вопрос задан
  • 249 просмотров
Подписаться 1 Простой 17 комментариев
Решения вопроса 4
Fzero0
@Fzero0
Вечный студент
let arrays = [
 [ '6', 'Shorter', '156' ],
 [ '7', 'Fraser', '157' ]
 ];
const arrayColumn = (arr, n) => arr.map(x => x[n]);
console.log(arrayColumn(arrays, 0));
console.log(arrayColumn(arrays, 1));
console.log(arrayColumn(arrays, 2));
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Пройти по исходным, раскидывая в три новых?
const data = [
  [ '6', 'Shorter', '157' ],
  [ '7', 'Fraser', '157' ],
  [ '6', 'Chandter', '156' ]
  // ...
];

const result = data.reduce((acc, cur) => {
  acc.forEach((el, idx) => {el.push(cur[idx])});
  return acc;
}, [[], [], []]);
  
// [["6","7","6"],["Shorter","Fraser","Chandter"],["157","157","156"]]
Ответ написан
Комментировать
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Самое банальное решение:
const arrays = [
	[ '6', 'Shorter', '157' ],
	[ '7', 'Fraser', '158' ],
	[ '8', 'Test', '159' ]
]

const firstArray = []
const secondArray = []
const thirdArray = []

arrays.forEach(array => {
	firstArray.push(array[0])
	secondArray.push(array[1])
	thirdArray.push(array[2])
})

console.log(firstArray)
console.log(secondArray)
console.log(thirdArray)
Ответ написан
@be_a_man
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы