2012-02-25 138 views
0

我迷失在嵌套的JSON和Coffeescript中。我有,看起来像这样JSON数据:Coffeescript二维数组理解

{ 
"top-level": { 
    "first_array": [y1,y2,y3...], 
    "second_array: [y1,y2,y3...]... etc 
} 

每个阵列需要被转换到与x和y值的二维阵列,其中x只是索引。所以

"first_array": [[x: 0, y: y1],[x: 0, y: y2]...] 

然后我需要返回只是一个数组的数组

[[first_array], [second_array]] 

我还需要这不知道的“first_array”明确姓名的工作等

我已经尽力概括这一点,因为我认为这仅仅是一个基本的JavaScript数据操作的问题,但如果是有帮助的,我想在这里格式用于D3.js功能d3.layout.stack数据:http://bl.ocks.org/1134768

谢谢!

+0

岂不结果数组是这样的: ' “first_array”:[X:0, y:y1],[x:1,y:y2] ...]' – jupp0r 2012-02-25 16:36:28

+1

数组不能有字符串索引,所以它应该是:''first_array“:[{x:0,y:y1}, {x:0,y:y2} ...]' – Flambino 2012-02-25 16:48:40

回答

4

我想这是你想要完成的任务:

obj = {"top-level": {"first_array": ["y1","y2","y3"], "second_array": ["y1","y2","y3"]}} 
({x: xi, y: yi} for yi,xi in ar for name,ar of obj['top-level']) 

息率

[ [ { x: 0, y: 'y1' }, 
    { x: 1, y: 'y2' }, 
    { x: 2, y: 'y3' } ], 
    [ { x: 0, y: 'y1' }, 
    { x: 1, y: 'y2' }, 
    { x: 2, y: 'y3' } ] ]