如何循环嵌套对象

时间:2017-08-29 23:38:47

标签: javascript loops object properties nested

您好我有一个看起来像这样的嵌套对象

doc.end()

我试图遍历嵌套对象中的所有属性我知道如何使用常规对象而不是嵌套对象,所以如果有人可以帮助我那将会很棒。

var dogTypes = {
GermanShepard {color: "black and white"},
Beagle       {color: "brown and white"},
cheuwahwah  {color: "green and white"},
poodle:    {color: "purple and white"},
 }

继承我打印出来的代码

 for (var key in dogTypes) {
 console.log(key + " : " + dogTypes[key])
 }

我在哪里将颜色属性纳入for in循环请帮助!!感谢

2 个答案:

答案 0 :(得分:2)

  

"我试图遍历嵌套对象中的所有属性"

嵌套对象是常规对象。如果要访问嵌套对象中的所有属性,只需要一个嵌套循环。



public scanQR() {
return new Promise((resolve, reject) => {
    this.qrScanner.prepare()
        .then((status: QRScannerStatus) => {
            if (status.authorized) {
                let scanSub = this.qrScanner.scan().subscribe((qrResult: string) => {

                    this.qrScanner.hide();
                    scanSub.unsubscribe();
                    // this is what I want, ultimately.
                    // return qrResult;
                    resolve(qrResult) //-------> resolving your top level promise
                });
                this.qrScanner.show();
            } else if (status.denied) {
                console.log("denied");
                reject("denied!")
            } else {
                // permission was denied, but not permanently.
                reject("denied!")
            }
        })
        .catch((e: any) =>
            console.log('Error is', e)
            reject(e)
        );
})




如果嵌套对象中只有一个已知密钥,那么您不需要循环,但是您也不需要嵌套对象。

答案 1 :(得分:0)

简单如下:

$(function () {
  // modified
  $('#header').load('/pages/header.html', function () {
    $('.nav a').click(function () {
        $('.nav a.active').removeClass('active');
        $(this).addClass('active');
    });
  });
});

访问color属性。 如果您添加更多级别,请查看:looping through an object (tree) recursively