我在 JS 中有一个带有嵌套对象的对象,并且有一个具有相同名称的数组的对象,并且可以使用不同的值多次弹出。我只想将每个数组的长度相加,直到该对象丢失为止。
例如:
0 : {id: 1, importantObject: {id: 1, {importantObject: {id: 1, importantObject:{...},}, somethingElse: 23}, something: 'test'}
1 : {id: 2, importantObject: {id: 24, {importantObject: {id: 55, importantObject:{...},}, somethingElse: 92}, something: 'test'}
等等..
我尝试执行以下操作:
const getCount = (a) => {
let count = 0;
a.map((b) => {
if (b.importantObject) {
count += b.importantObject.length;
getCount(b.importantObject)
}
});
return count;
}
但是,我没有得到正确的计数。我究竟做错了什么?
进行递归时,您必须使用递归调用返回值
const getCount = (a) => {
let count = 0;
for (let b of a) {
if (b.importantObject) {
count += b.importantObject.length;
count += getCount(b.importantObject); // here
}
}
return count;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句