递归函数如何在函数中保留值

时间:2018-11-27 07:28:38

标签: javascript

我有一个函数遍历乘积categories数组,其中每个类别可能具有包含children的{​​{1}}数组,并且每个子类别也可能具有子级直到n级。 >

我有sub-categories数组和categories,我想像我的函数一样搜索

category_id

即使找到类别,它也始终返回null。我在做错什么?

1 个答案:

答案 0 :(得分:2)

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

您可以为类别添加默认数组,这对于未指定子项很重要。

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