Javascript 递归函数如何在函数中保存值
我有一个函数,它在产品Javascript 递归函数如何在函数中保存值,javascript,Javascript,我有一个函数,它在产品类别数组上循环,其中每个类别都可能有子类别数组,其中包含子类别,每个子类别也可能有子类别到n级 我有categories数组和categories\u id,我想搜索我的函数 findCategory( categories, category_id) { let category; for( let i = 0; i < categories.length; i++ ) { if( categories[ i ].id === ca
类别
数组上循环,其中每个类别都可能有子类别
数组,其中包含子类别
,每个子类别也可能有子类别到n级
我有categories
数组和categories\u id
,我想搜索我的函数
findCategory( categories, category_id) {
let category;
for( let i = 0; i < categories.length; i++ ) {
if( categories[ i ].id === category_id ) {
category = categories[ i ];
break;
}
if( !category && categories[ i ].children ) {
this.findCategory( categories[ i ].children, category_id )
}
}
return category
}
findCategory(类别、类别\u id){
let类;
for(设i=0;i
它总是返回null,即使它找到了类别。我所做的是错误的?您还需要在循环中返回找到的结果 您可以为类别添加一个默认数组,这对于未指定的子级很重要
function findCategory(categories = [], category_id) {
let category;
for (let i = 0; i < categories.length; i++) {
if (categories[i].id === category_id) {
return categories[i];
}
if (category = this.findCategory(categories[i].children, category_id)) {
return category;
}
}
}
函数查找类别(类别=[],类别id){
let类;
for(设i=0;i