2013-02-14 2 views
0

Как я могу вернуть первые значения из набора массивов?Возврат второго значения из нескольких массивов Javascript

var arr = [ 
    ['2009', 1000, 400, 800], 
    ['2010', 1170, 460, 1200], 
    ['2011', 660, 1120, 500], 
    ['2012', 1030, 540, 800] 
], res, i, a, b, c, d, e; 

!function doMerge() { 
    for(i = 0; i < arr.length; i++) { 
     res = arr[i];  
     console.log(res.splice(1)); 
    }  
}(arr) 

// get rid of years 
// prints  
[1000, 400, 800] 
[1170, 460, 1200] 
[660, 1120, 500] 
[1030, 540, 800] 

Я пытаюсь создать массив из первого из этих значений [1000, 1170, 660, 1030]

ответ

1
res = []; 

function doMerge() { 
    for(i = 0; i < arr.length; i++) { 
     res.push(arr[i][1]);  
    }  
} 

doMerge(); 

console.log(res); 

выходы [ 1000, 1170, 660, 1030 ]

+0

Где '[1000, 1170, 660, 1030]' производимого этим? –

+0

он находится в переменной res; это было минимальное изменение от исходного кода. Я бы вернул новый массив из функции. –

+0

У вас есть синтаксическая ошибка в строке 3 (непревзойденный '{') и даже после исправления, я не думаю, что 'res' станет тем, что вы думаете, что оно становится (попробуйте его и посмотрите) –

1
var arr = [ 
    ['2009', 1000, 400, 800], 
    ['2010', 1170, 460, 1200], 
    ['2011', 660, 1120, 500], 
    ['2012', 1030, 540, 800] 
]; 

var newArr = []; 

for (var x = 0; x < arr.length; x++){ 
    newArr.push(arr[x][1]); 
} 

console.log(newArr); 

Вот решение.

http://jsfiddle.net/wcVZH/

0

Если вы не хотите for или while петли вы можете один линия это с Array.prototype.map

var myArr = arr.map(function (a) {return a[1];}); 
Смежные вопросы