如何在这个JS循环中嵌套一个对象?

时间:2015-09-13 12:52:18

标签: javascript for-loop

我无法理解这个JS代码的行为。此循环中的d对象以某种方式嵌套在浏览器控制台中。在浏览器中运行下面的代码段或在http://jsfiddle.net/qhsjyzob/中查看它,然后检查浏览器控制台中的第二个和第三个console.log。为什么它表明d对象是这样的:

{
    Hello: {
        World: {}
    }
}

当它必须只是这样时:

{
    Hello: {}
}

以下是代码或http://jsfiddle.net/qhsjyzob/

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
</head>

<body>
    <script type="text/javascript">
        'use strict';

        var e = ['Hello', 'World'];
        var d = {}

        for (var g = 0; g < e.length; g++) {

               console.log("1: ", d, g, d[e[g]], e[g]);

            d[e[g]] = d[e[g]] || {};

               console.log("2: ", d, g, d[e[g]], e[g]);

               console.log("3: ", d, g, d[e[g]], e[g]);

            d = d[e[g]]

               console.log("4: ", d, g, d[e[g]], e[g]);
        }
    </script>
</body>

</html>

0 个答案:

没有答案