Показать сообщение отдельно
  #1 (permalink)  
Старый 11.07.2014, 14:27
Интересующийся
Отправить личное сообщение для ponyspy Посмотреть профиль Найти все сообщения от ponyspy
 
Регистрация: 27.09.2013
Сообщений: 15

Преобразовать вектор в матрицу
Всем привет, я столкнулся с задачей и не понимаю как ее решить...

Есть массив
var arr = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];

Необходимо привести его вот к такому виду:
var arr_res = [
  ['01', '05', '09'],
  ['02', '06', '10'],
  ['03', '07', '11'],
  ['04', '08', '12']
];


Мой вариант использует объект, вместо двухмерного массива и к тому же не работает...

var arr = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];

var matrix = {
	one: [],
	two: [],
	three: [],
	four: []
}

for (var i = 0; i <= arr.length; i++) {
	switch (i) {
        case (i + 0): matrix.one.push(arr[i]); break;
        case (i + 1): matrix.two.push(arr[i]); break;
        case (i + 2): matrix.three.push(arr[i]); break;
        case (i + 3): matrix.four.push(arr[i]); break;
	}
}


В идеале алгоритм должен принимать параметр количества строк в матрице.

Спасибо!
Ответить с цитированием