javascript - 如何查找对象中存在的键的总数以及分配给javascript中变量的内部嵌套对象
问题描述
使用这些数据,我如何找到 Customer 对象和所有子元素对象的键数?
const Customer = {
"Profile": {
"A1": {
"A2": "",
"A3": "E",
"A4": "",
"A5": {
"Cus": "",
"Bil": ""
},
"Services": [{
"vA": {
"Status": 2,
"Switch-CLLi": "",
"PLIST": [{
"Status": "",
"Price": 0
}, {
"Status": "",
"Price": 40
}]
}
}]
},
"B1": {
"B2": 953108717,
"B3": "04"
}
}}
解决方案
您可以为此进行用户递归。
const countKeys = (obj, result) => {
const keys = Object.keys(obj);
result.sum+= keys.length;
result.keys = [...result.keys, ...keys];
keys.forEach(key => {
if(typeof(obj[key]) === 'object')
result= countKeys(obj[key],result);
})
return result;
};
在你的方法中调用这个方法
const totalKeys = countKeys(yourObject, { sum: 0, keys: []});
推荐阅读
- wxpython - 如何为 wxpython 接口做一个好的构造函数?
- azure-service-fabric - Service Fabric:本地集群给出 403 禁止访问
- ios - 在swift 4中将对象的创建限制为工厂
- web-deployment - 在网站部署期间确保客户端的一致性
- node.js - 如果需要 Nodejs 文件系统 (fs),如何在 Vue 中使用 NPM 包
- javascript - 为什么@babel/node 找不到要导入的本地文件?
- c# - 检测屏幕 1 和屏幕 2 ,在屏幕 1 处打开(仅当没有屏幕时)
- c# - c#组合多个函数的yield返回
- java - 即使节点在firebase中退出也能获得空值
- javascript - react-native 如何在每次点击视图时执行功能