Javascript jQuery:从JSON创建数组

Javascript jQuery:从JSON创建数组,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我有这样一个JSON: { "default": [ [ 1325876000000, 0 ], [ 1325876000000, 0 ], [ 1325876000000, 0 ], [ 1325876000000, 0 ] ], "direct": [ [ 1328196800000, 0

我有这样一个JSON:

{
  "default": [
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ]
  ],
  "direct": [
    [
      1328196800000,
      0
    ],
    [
      1328196800000,
      100
    ],
    [
      1328196800000,
      0
    ],
    [
      1328196800000,
      0
    ]
  ],
  "Sales": [
    [
      1330517600000,
      0
    ],
    [
      1330517600000,
      0
    ],
    [
      1330517600000,
      90
    ],
    [
      1330517600000,
      0
    ]
  ],
  "Support": [
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ]
  ]
}
ticks = [["default", 1325876000000],["direct", 1328196800000],["Sales", 1330517600000],["Support", 1332838400000]]
我想生成一个数组,该数组包含每个项目的名称和对应数组的第一个值。结果应该是这样的:

{
  "default": [
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ]
  ],
  "direct": [
    [
      1328196800000,
      0
    ],
    [
      1328196800000,
      100
    ],
    [
      1328196800000,
      0
    ],
    [
      1328196800000,
      0
    ]
  ],
  "Sales": [
    [
      1330517600000,
      0
    ],
    [
      1330517600000,
      0
    ],
    [
      1330517600000,
      90
    ],
    [
      1330517600000,
      0
    ]
  ],
  "Support": [
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ]
  ]
}
ticks = [["default", 1325876000000],["direct", 1328196800000],["Sales", 1330517600000],["Support", 1332838400000]]
像default、direct、sales和support这样的名称是动态的,因此我无法执行
jsondata.support

我试过的 但我不知道如何推动价值观


请帮助。

您只需访问子阵列即可

var ticks = [];
for (var key in jsondata) {
  ticks.push( [ key, jsondata[key][0][0] ] );
}
表达式
jsondata[key]
获取每个键对应的外部数组。然后,
jsondata[key][0]
获取第一个子数组,并将最后的
[0]
添加到该子数组中,获取第一个子数组中的第一个值

var ticks = [];
for (var key in jsondata) {
  ticks.push( [ key, jsondata[key][0][0] ] );
}

请注意,不能保证按任何特定顺序取回密钥。

您只需访问子数组即可

var ticks = [];
for (var key in jsondata) {
  ticks.push( [ key, jsondata[key][0][0] ] );
}
表达式
jsondata[key]
获取每个键对应的外部数组。然后,
jsondata[key][0]
获取第一个子数组,并将最后的
[0]
添加到该子数组中,获取第一个子数组中的第一个值

var ticks = [];
for (var key in jsondata) {
  ticks.push( [ key, jsondata[key][0][0] ] );
}

请注意,不能保证按任何特定顺序取回密钥。

EDIT:arraynew.push(jsondata[key][0][0])为什么要将arraynew=[];在循环内部?@LuisMasuelli推动整个阵列,我只需要第一个value@GôTô获取所有动态数据。@user2208349抱歉,我没有获取它。它不会为每个键清空arraynew吗?编辑:arraynew.push(jsondata[key][0][0])为什么要将arraynew=[];在循环内部?@LuisMasuelli推动整个阵列,我只需要第一个value@GôTô获取所有动态数据。@user2208349抱歉,我没有获取它。它不会为每个键清空arraynew吗?+1它可以工作。太神了谢谢一旦系统允许+1,它将接受它。太神了谢谢一旦系统允许,我们将接受它