2015-02-24 4 views
0

У меня есть массив в виде maxtrix как этотСоздать массив первого элемента каждого массива

var costs = [ 
     [4, 6, 8, 8], 
     [6, 8, 6, 7], 
     [5, 7, 6, 8], 
    ]; 

как я преобразовать его в этом

[[4,6,5], [6,8,7], [8,6,5], [8,7,5]] 

Это то, что я пытаюсь

var cols = []; 

for(var i = 0; i<costs.length; i++) 
{ 
    cols.push(costs[i][0]); 
} 

return col; 

И это дает мне [4,6,5]. Я знаю, что чего-то не хватает, любая помощь будет большой. Благодаря

+0

гарантируется расходы только содержат 3 массивов или это может быть любое число? – Magrangs

+0

@ Magrangs это может быть любое число – MrFoh

+1

Это не так сложно -> ** http: //jsfiddle.net/d1mbf71v/** – adeneo

ответ

2

Вам нужен другой for цикл внутри первого:

var costs = [ 
 
    [4, 6, 8, 8], 
 
    [6, 8, 6, 7], 
 
    [5, 7, 6, 8], 
 
]; 
 

 
alert("Original: " + JSON.stringify(costs)); 
 

 
// Prepare array... 
 
var cols = new Array(costs[0].length); 
 
for(var i = 0; i < costs[0].length; i++) { 
 
    cols[i] = new Array(costs.length); 
 
} 
 

 
// Assign values... 
 
for(var i = 0; i < costs.length; i++) { 
 
    for(var k = 0; k < costs[i].length; k++) { 
 
     cols[k][i] = costs[i][k]; 
 
    } 
 
} 
 

 
alert("New: " + JSON.stringify(cols));

+0

это выводит только три массива вместо четырех – MrFoh

+0

Дайте мне одну минуту ... – ByteHamster

+0

Хорошо, посмотрите мой обновленный ответ – ByteHamster

Смежные вопросы