我应该在javascript中定义多少个嵌套对象?

时间:2018-06-25 17:30:59

标签: javascript

我是javascript新手。

  • 在这里,我想知道我可以多少个嵌套或内部对象 在javascript
  • 中定义
  • 如何在js中查找前两个嵌套对象的键。

    我也在Google上搜索它,但没有任何解决方法。

这是我想要的例子!

     var obj = {
      a:{
       b:{
         c:{
             //so on
           }
         }
      }
    }

提前谢谢。

3 个答案:

答案 0 :(得分:2)

  

我想知道我可以在javascript中定义多少个嵌套或内部对象

没有指定的限制。

对于诸如您所示的对象初始化程序,最终您将遇到运行该代码的特定JavaScript引擎的某种限制,例如围绕其对初始化程序的解析/处理,但是规范中没有定义。

如果您自己动态创建对象,例如这样的话:

/Users/yossiv/git/c2s-algo

...除了您要创建的对象数量(而不是它们的嵌套)相关的内存限制外,没有理由相信您会遇到任何其他情况。

  

如何查找在js中定义了多少个对象键

在一个特定的对象中,您可以通过// Don't run this code! var obj = {}; while (true) { obj.child = {}; obj = obj.child; } Object.getOwnPropertyNames获得其 own (未继承)属性的数组,然后取Object.getOwnPropertySymbols数组。要找出对象具有 的属性以及引用其属性的对象的数目,可以使用递归搜索-但要注意循环结构。

例如:

length

答案 1 :(得分:1)

  1. 第一个问题的答案。

对嵌套对象没有任何限制。您可以根据需要定义嵌套对象,直到超出内存限制为止。

  1. 回答第二个问题。

这是从嵌套对象中查找键的代码,但仅适用于第二个嵌套对象。

   for (var key in ob) {
    if (!ob.hasOwnProperty(key)) 
    continue;
    var obj = ob[key];
   help += "</br>"
   for (var prop in obj) {
        // skip loop if the property is from prototype
        if(!obj.hasOwnProperty(prop)) continue;

        help += " ---) \""+key+" "+prop+"\"</br>"

    }
}

告诉我你想要的东西

答案 2 :(得分:0)

  

我想知道我可以在javascript中定义多少个嵌套或内部对象?

在JS规范中未定义。

您可以定义嵌套或内部对象的数量。

  

但是:不要忘记:代码中的每个对象都需要放置在PC内存中。而且,如果您有许多对象,浏览器将无法正常工作。


  

如何查找JS中定义了多少个对象键?

具有以下方法:

        

返回一个数组,其中包含给定对象自身所有可枚举和不可枚举属性的名称。

           

返回直接在给定对象上找到的所有符号属性的数组。

您将发现在对象中定义了多少个对象键的长度。