javascript
  • typescript
  • 2017-02-22 47 views -1 likes 
    -1

    我需要遍历此Json数据并在JavaScript中添加值(TypeScript)No Jquery。在JavaScript/TypeScript中迭代Json数据

    {"GridHeader":{"Id":"Id","Name":"Full Name","Age":"Age"},"GridData":{"Id":3,"name":"Vu","age":34}} 
    

    我添加的功能如下里面添加标题和数据网格:

    let header = '{"GridHeader":{"Id":"Id","Name":"Full Name","Age":"Age"},"GridData":{"Id":3,"name":"Vu","age":34}}'; 
    let myheader = JSON.parse(header); 
    
    
    for (var i = 0; ??) { 
        .... 
    
        AddRecord(headerdata, i); 
    } 
    

    这是我将它添加到网格:

    function AddRecord(record, n) { 
    var detail = document.getElementById("detail"); 
    var header = document.getElementById("header"); 
    
    if (n == 0) { 
        var newdiv = document.createElement("div"); 
        newdiv.innerHTML = "<div style=''>" + record.id + "</div>" + "<div>" + record.name + "</div>" + "<div>" + record.age + "</div>"; 
    } 
    
    var newdiv = document.createElement("div"); 
    newdiv.innerHTML = "<div style=''>" + record.id + "</div>" + "<div>" + record.name + "</div>" + "<div>" + record.age + "</div>"; 
    detail.appendChild(newdiv); 
    

    }

    回答

    0

    您将不得不更详细地解释“迭代数据”的含义。

    { 
        "GridHeader":{ 
         "Id":"Id", 
         "Name":"Full Name", 
         "Age":"Age" 
        }, 
        "GridData":{ 
         "Id":3, 
         "name":"Vu", 
         "age":34 
        } 
    } 
    

    没有任何数组在其中。

    如果它确实有它的数组,然后我会假设你的意思是这样的:

    "mydata":{ 
        "GridHeader":{ 
         "Id":"Id", 
         "Name":"Full Name", 
         "Age":"Age" 
        }, 
        "GridData":[ 
         { 
          "Id":3, 
          "name":"Vu", 
          "age":34 
         }, 
         { 
          "Id":2, 
          "name":"Vu2", 
          "age":33 
         }, 
         { 
          "Id":1, 
          "name":"Vu1", 
          "age":32 
         } 
        ] 
    } 
    

    如果您的数据看起来像,那么你有对象的数组中的网格数据,你会然后可以使用这样的事情:

    mydata.GridData.forEach(item){ 
        // DO something with 
        // item.Id 
        // item.Name 
        // item.Age 
    } 
    

    在循环您的代码就会在你父母的的GridData一部分的每个对象调用一次,并允许您访问到每个3个属性为每个单独的项目。

    但是,以它的方式来看待您的数据,那么它只是一个简单的对象。

    如果我们想象你拥有了它在一个名为myData的变量,那么你就可以访问它的部分如下:

    myData.GridHeader.Id 
    myData.GridHeader.Name 
    myData.GridHeader.Age 
    

    要获得头属性。

    myData.GridData.Id 
    myData.GridData.Name 
    myData.GridData.Age 
    

    为了获得您存在的唯一非可迭代对象的属性。

    +0

    mydata.GridData.forEach(item)中的项是什么,数据就像你有豪宅。 – Alma

    +0

    这是您迭代的当前对象。您可以使用它作为您的网关来访问循环中的当前元素,就像我的示例清楚地显示的那样。 – shawty

    1

    是的,你的数据实际上是一个JavaScript对象如下:

    var header = { 
        "GridHeader":{"Id":"Id","Name":"Full Name","Age":"Age"}, 
        "GridData": {"Id":3,"name":"Vu","age":34} 
        }; 
    

    ,您可以遍历它象下面这样:

    for (var prop in header) { 
         console.log("Key:" + prop); 
         console.log("Value:" + header[prop]); 
        } 
    

    请根据您的需求做出来。我给你一个线索来重复它。谢谢。

    相关问题