gpt4 book ai didi

javascript - 递归函数如何保留函数内的值

转载 作者:行者123 更新时间:2023-11-30 14:16:29 25 4
gpt4 key购买 nike

我有一个循环遍历产品 categories 数组的函数,其中每个类别可能有 children 数组,其中包含 sub-categories 和每个子-类别也可能有第 n 级的 child

我有 categories 数组和 category_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
}

它总是返回 null,即使它找到了类别。我在做什么假的?

最佳答案

您还需要在循环中返回找到的结果。

您可以为类别添加默认数组,这对于未给定的 child 很重要。

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;
}
}
}

关于javascript - 递归函数如何保留函数内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com