2014-05-11 98 views
-1

在我的node.js程序,我已成功地检索userinput并继续刮独特的表为每个用户收到以下关联数组创建子阵,称为self.items从关联数组

当我打电话如下:

console.log(self.items) 

我为特定用户收到以下输出。

[ { Wins: 5, 
    Losses: 1, 
    Points: 33 }, 
    { Wins: 3, 
    Losses: 1, 
    Points: 21 }, 
    { Wins: 3, 
    Losses: 0, 
    Points: 18 } ] 

因为我打算以显现与d3.js数据我想关联数组简化成3个可管理简单阵列,使得对于每个键将有与所有的相应值的创建了一个简单阵列。以下输出是我正在寻找的:

console.log(wins) => [5,3,3] 

console.log(losses) => [1,1,0] 

console.log(points) => [33,21,18] 

我该如何去做这件事?

+1

创建3个阵列。循环返回的数组并相应地分配它们?谷歌搜索会帮助你在这里 –

+0

感谢您的快速回复。你介意如何执行前面提到的循环吗?我试图搜索,但无法找到任何简单的东西。 –

+0

你试图搜索什么 –

回答

0

创建3个空阵列(胜,损失,点数)。只需循环使用for...loop即可使用length来确定有多少元素。

使用push()将各个部分添加到它们各自的阵列。

var data = [ 
{ 
    Wins: 5, 
    Losses: 1, 
    Points: 33 
}, 
{ 
    Wins: 3, 
    Losses: 1, 
    Points: 21 
}, 
{ 
    Wins: 3, 
    Losses: 0, 
    Points: 18 
}]; 

var wins = [], losses = [], points = []; 
for(var i=0; i< data.length; i++) 
{ 
    wins.push(data[i].Wins); 
    losses.push(data[i].Losses);  
    points.push(data[i].Points);  
} 

console.log(wins); 
console.log(losses); 
console.log(points); 

Fiddle

+0

-1无解释 –

+0

@RJJordan采取点。更好? –

+0

是的。这就是我想要的。 –

-1

因为你知道结构,你可以简单地做到这一点。

var wins = [], losses = [], points = [], item; 
for (var i=0; i < self.items.length; i++) { 
    item = self.items[i]; 
    wins.push(item.Wins); 
    losses.push(item.Losses); 
    points.push(item.Points); 
} 
+0

不建议对索引数组使用'for .. in'循环iirc –

+0

确实,编辑... –

+0

现在尝试解释您的答案,因为如果OP知道什么循环是他不会问的。 –