2014-09-23 66 views
0

我有一个 JSON 数组,它是以下结构:打印阵列在Javascript

[ 
    [ 
     ["ABC", [ 
      [0, 0.139], 0.14]], 
     ["DEF", [ 
      [0, 0.02, 0.06, 0.015], 0.115]], 
     ["GHI", [ 
      [0, 0.0722, 0.9], 0.105]] 
    ] 
] 

我卡在部分打印格式

ABC 
    First:0, 0.139 Final: 0.14 

DEF 
    First:0,0.02,0.06,0.015 Final: 0.115 

这应该不是太难,但我只是不能够破解它,这就是我已经试过:

$.each(data, function(i){ 
    var vc = data[0][i]; 
    var cw = data[0][i].[i][1] 
    var arr = [vc, cw]; 
    vcat.push(arr); 
}); 

for(i=0; i<len;i++){ 
    vc.push(data[0][i]); 
    for(j=0;j<len;j++){ 
     cw.push(data[0][i].data[j]) 
     } 
    } 
} 

这两种方法都失败了,我无法确定打印此树的正确算法。

+3

你能告诉我们你真正想要的输出看起来像?我的输入数据中没有看到“Something,Something Else”。 – JLRishe 2014-09-23 13:51:34

+0

我很抱歉..我编辑了问题 – Newtt 2014-09-23 13:54:28

+2

谢谢。假设那些是数组而不是普通对象,是否安全?你可以用方括号来显示实际的JSON(如果需要的话,你可以在jspretty.com上对它进行美化。) – JLRishe 2014-09-23 13:59:00

回答

1

它看起来这是你想要做什么:

var o = {}; 

$.each(data[0][0], function() { 
    o[this[0]] = { 
     First: this[1][0].join(", "), 
     Final: this[1][1] 
    }; 
}); 

http://jsfiddle.net/qf25azhp/

0

这一次,你遍历data,所以你需要使用data[i] - 你总是访问只有data[0](以及其他一些属性)。

其次,JavaScript中的字符串连接运算符是+(加号),而不是.

所以,你的代码而应是这样的:

data = data[0]; 
$.each(data, function(i){ 
    var vc = data[i][0]; 
    var cw = data[i][1][0][0]+" "+data[i][1][1]; 
    var arr = [vc, cw]; 
    vcat.push(arr); 
}); 

data = data[0]; 
for(var i=0; i<len;i++){ 
    vc.push(data[i][0]); 
} 
for(var j=0;j<len;j++){ 
    cw.push(data[j][1][0][0]+" "+.data[j][1][1]) 
} 

(忽略可能许多其他问题)