从关联数组创建子阵列

时间:2014-05-11 18:19:40

标签: javascript node.js associative-array

在我的node.js应用程序中,我设法检索用户输入并继续为每个用户刮取一个唯一的表来接收以下关联数组,称为 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]

我该怎么做呢?

2 个答案:

答案 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

答案 1 :(得分:-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);
}