未知数量对象的JS数组递归
JS array recursion for unknown number of objects
我在 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;
}
但是,我没有得到正确的计数。我做错了什么?
做递归时必须使用递归调用return值
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;
}
我在 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;
}
但是,我没有得到正确的计数。我做错了什么?
做递归时必须使用递归调用return值
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;
}