javascript - 我应该在 javascript 中定义多少个嵌套对象?
问题描述
我是 javascript 新手。
在这里,我想知道我可以定义多少个嵌套或内部对象
javascript
如何在 js 中找到前 2 个嵌套对象的键。
我也在谷歌上搜索它,但我没有得到任何解决方案。
这是我想要的例子!
var obj = {
a:{
b:{
c:{
//so on
}
}
}
}
提前致谢。
解决方案
在这里,我想知道我可以在 javascript 中定义多少个嵌套或内部对象
没有指定的限制。
对于对象初始化器,例如您展示的对象初始化器,最终您会遇到运行代码的特定 JavaScript 引擎的某种限制,例如,围绕它的初始化器解析/处理,但没有定义在规范。
如果您自己动态构建对象,例如这样:
// Don't run this code!
var obj = {};
while (true) {
obj.child = {};
obj = obj.child;
}
...没有理由相信除了与您正在创建的对象数量(而不是它们的嵌套)相关的内存限制之外,您还会遇到任何问题。
如何查找在js中定义了多少个对象键
在一个特定对象中,您可以通过and获取其自身(非继承)属性的数组,然后获取数组的 。要找出对象有多少属性以及它的属性引用的对象有多少,您可以使用递归搜索——但要注意循环结构。Object.getOwnPropertyNames
Object.getOwnPropertySymbols
length
例如:
const obj = {
a: {
b: {
c: {
}
}
}
};
function countProps(target, recursive = false) {
const ownProperties = [
...Object.getOwnPropertyNames(target),
...Object.getOwnPropertySymbols(target)
];
let count = ownProperties.length;
if (recursive) {
for (const key of ownProperties) {
const value = target[key];
if (value && typeof value === "object") {
count += countProps(value, true);
}
}
}
return count;
}
console.log(countProps(obj, true));
推荐阅读
- amazon-eks - 在区域中查找 EKS 的 apiVersion
- jdbc - Kafka Connect,明文的 JDBC 连接器密码。如何避免?
- eclipse - 如何将子菜单添加到“打开方式”菜单表单 org.eclipse.ui.menu 扩展点
- python - Komodo IDE 的 Python3 解释器
- powershell - iPhone Activesync for Outlook 联系人“其他”电话号码未同步
- spring-boot - 通过字段 'jdbc' 表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException
- powerpoint - 将 PowerPoint 幻灯片转换为 Scorm 1.2
- mongodb - 在另一个集合中查找具有值的键
- java - 为特定的 Spring Boot 测试禁用 Kafka 侦听器
- python - 在画布上移动物体?