这是我的json

{
  "data": [
    [
      "1",
      "Skylar Melovia"
    ],
    [
      "4",
      "Mathew Johnson"
    ]
  ]
}
this is my code jquery Code
for(i=0; i<= contacts.data.length; i++) {
    $.each(contacts.data[i], function( index, objValue ){
        alert("id "+objValue);
    });
}

我在objValue中获取了数据,但是我想分别存储在idname数组中,看起来像这样,我的代码如下
var id=[];
var name = [];
for(i=0; i<= contacts.data.length; i++){
    $.each(contacts.data[i], function( index, objValue ) {
        id.push(objValue[index]); // This will be the value "1" from above JSON
        name.push(objValue[index]); // This will be the value "Skylar Melovia"   from above JSON
    });
}

我怎样才能做到这一点。

最佳答案

 $.each(contacts.data, function( index, objValue )
 {
    id.push(objValue[0]); // This will be the value "1" from above JSON
    name.push(objValue[1]); // This will be the value "Skylar Melovia"   from above JSON

 });

编辑,替代用法:
 $.each(contacts.data, function()
 {
    id.push(this[0]); // This will be the value "1" from above JSON
    name.push(this[1]); // This will be the value "Skylar Melovia"   from above JSON
 });

$ .each将遍历contact.data,它是:
[
    //index 1
    [
      "1",
      "Skylar Melovia"
    ],
    //index=2
    [
      "4",
      "Mathew Johnson"
    ]

]

您使用签名函数(index,Objvalue)给出的匿名函数将应用到每个元素,其index是contact.data数组中的索引,objValue的值。对于index = 1,您将拥有:
objValue=[
          "1",
          "Skylar Melovia"
        ]

然后,您可以访问objValue [0]和objValue [1]。

编辑(以回应Dutchie432的评论和答案;)):
没有jQuery的方法更快,$。each更好地读写,但是这里使用普通的旧JS:
for(i=0; i<contacts.data.length; i++){
    ids.push(contacts.data[i][0];
    name.push(contacts.data[i][1];
}

08-06 07:29