如何在不指定键名的情况下获取JavaScript嵌套对象的值
无需指定键名获取嵌套对象的值
这里有几种方法可以实现不用明确写"New York"就能拿到对应的值:
方法1:用Object.values()直接提取值
Object.values()会返回对象所有值组成的数组,因为你的内层对象只有一个值,直接取数组第一个元素即可:
<!DOCTYPE html> <html> <body> <h2>JavaScript Objects</h2> <p>Display object properties:</p> <p id="demo"></p> <script> const person = { city: {"New York":3} }; let txt = ""; for (let x in person) { txt += Object.values(person[x])[0] + " "; }; document.getElementById("demo").innerHTML = txt; </script> </body> </html>
方法2:嵌套for...in遍历内层对象
如果不确定内层对象有多少个键,可以再套一层循环遍历所有内层属性:
<!DOCTYPE html> <html> <body> <h2>JavaScript Objects</h2> <p>Display object properties:</p> <p id="demo"></p> <script> const person = { city: {"New York":3} }; let txt = ""; for (let x in person) { for (let key in person[x]) { txt += person[x][key] + " "; } }; document.getElementById("demo").innerHTML = txt; </script> </body> </html>
方法3:用Object.keys()获取内层键再取值
先获取内层对象的所有键,再取第一个键对应的值:
<!DOCTYPE html> <html> <body> <h2>JavaScript Objects</h2> <p>Display object properties:</p> <p id="demo"></p> <script> const person = { city: {"New York":3} }; let txt = ""; for (let x in person) { const innerKey = Object.keys(person[x])[0]; txt += person[x][innerKey] + " "; }; document.getElementById("demo").innerHTML = txt; </script> </body> </html>
注:如果内层对象有多个键,方法1和方法3只会取第一个值,方法2会遍历输出所有值,可根据实际需求选择。
内容的提问来源于stack exchange,提问作者thefonso
相关产品推荐
相关产品推荐

