Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-枚举嵌套对象结构_Javascript - Fatal编程技术网

JavaScript-枚举嵌套对象结构

JavaScript-枚举嵌套对象结构,javascript,Javascript,我需要解析此对象的帮助: var user = { "10000068485": {"id":"10000068485","name":"Jenan"}, "10000099257": {"id":"10000099257","name":"John"} } 我需要读取每行的id和名称属性: 1 row - id = 10000068485 and name = Jenan 2 row - id = 10000099257 and name = John 到目前为止,我已经试

我需要解析此对象的帮助:

var user = {
    "10000068485": {"id":"10000068485","name":"Jenan"},
    "10000099257": {"id":"10000099257","name":"John"}
}
我需要读取每行的id和名称属性:

1 row - id = 10000068485 and name = Jenan
2 row - id = 10000099257 and name = John
到目前为止,我已经试过了:

for (var key in user) {
   if (user.hasOwnProperty(key)) {
     var obj = user[key];
     for (var prop in obj) {
       if (obj.hasOwnProperty(prop)) {
          //This read 4 rows and no 2 rows
       }
     }
   }
}
注释:我想在一行中显示id和名称

注释:在html表中


注释:我想将id和名称分为两列。

您有两个键id,每个键都有两个键id,name。所以在你的内部循环中,它是4=2x2

> for(key in user) {
...   obj = user[key];
...   for (prop in obj) {
...      console.log(obj[prop])
...   }
... }
10000068485
Jenan
10000099257
John

你应该这样做

for (var key in user) {
     var obj = user[key];
    if (obj.hasOwnProperty("name") && obj.hasOwnProperty("id")) {
        alert("id:"+obj.id +" & name:"+obj.name);
   }
}

小提琴:

如果你的HTML表格是这个

<table id=data_table>
    <thead>
        <th>ID</th>
        <th>NAME</th>
    </thead>
    <tbody>
    </tbody>
</table>
演示:

下面是一个在div中创建新元素的示例

生成的结构如下所示:

<div id=main>
    <p>
        <span>10000068485</span> <span>Jenan</span>
    </p>
    <p>
        <span>10000099257</span> <span>John</span>
    </p>
</div>

演示:

您的问题到底是什么?您的代码工作正常。你面临的问题是什么?@LightnessRacesinOrbit:你在和谁说话?要求澄清没有什么错。@Jenan:好的。那就麻烦了。您在问题中提供的代码的唯一部分是看起来工作正常的通用部分。由于您遇到的问题是表插入,因此这可能是最重要的部分。不知道你的桌子结构,很难回答。@Jenan:没关系。我希望这会有所帮助。我对你们的桌子结构还是一无所知,所以我就编了一张。让我知道它是否适合你。这工作很好。多谢各位@杰南:不客气。很高兴它起作用了。谢谢你的耐心:-你能帮我吗?我将对html div执行相同的逻辑。非常感谢!你太棒了。
var user = {
    "10000068485": {"id":"10000068485","name":"Jenan"},
    "10000099257": {"id":"10000099257","name":"John"}
};

var tbody = document.getElementById('data_table').tBodies[0];

for (var key in user) {
   if (user.hasOwnProperty(key)) {
     var row = tbody.insertRow( tbody.rows.length );
     row.insertCell( 0 )
         .appendChild( document.createTextNode( user[key].id ) );
     row.insertCell( 1 )
         .appendChild( document.createTextNode( user[key].name ) );
   }
}
<div id=main>
    <p>
        <span>10000068485</span> <span>Jenan</span>
    </p>
    <p>
        <span>10000099257</span> <span>John</span>
    </p>
</div>
var user = {
    "10000068485": {"id":"10000068485","name":"Jenan"},
    "10000099257": {"id":"10000099257","name":"John"}
};

var p, main = document.getElementById('main');

for (var key in user) {
   if (user.hasOwnProperty(key)) {
     p = main.appendChild( document.createElement('p') );
     p.appendChild( document.createElement('span') )
                .appendChild( document.createTextNode( user[key].id ) );

     p.appendChild( document.createElement('span') )
                .appendChild( document.createTextNode( user[key].name ) );
   }
}