我基本上需要计算标签“property1”和“property2”,这样结果就是 4。 该对象看起来有点像这样:
parent: {
child: {
child2: {
child3: { property1: '', property2: '' }
}
},
2child: {
2child2: {
2child3: { property1: '', property2: '' }
}
}
}
我需要计算指定的属性,但找不到方法。该对象可以有许多这样的子对象,这些子对象都有自己的子对象,并且需要对所有指定的属性进行计数。 我的第一个猜测是需要递归。
最佳答案
您确实可以使用递归函数。 Object.keys
和 Object.values
方法也很有用:
function propCount(obj) {
return Object(obj) !== obj ? 0
: Object.values(obj).map(propCount)
.reduce( (a,b) => a+b, Object.keys(obj).length );
}
var obj = {parent: {child: {child2: {child3: { property1: '', property2: '' }}},"2child": {"2child2": {"2child3": { property1: '', property2: '' }}}}};
console.log(propCount(obj));
关于javascript - 计算对象的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48508362/