You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中从嵌套对象获取父级名称并生成层级字符串

生成分类层级路径字符串的实现方法

给定如下结构的分类对象:

{
    id: 15,
    name: "Power",
    childCategories: [],
    parent: {
        id: 10,
        name: "Cables",
        parent: null,
        stockItems: []
    }
}

需要输出格式为 Cables ⟶ Power 的层级路径字符串,下面提供两种适合新手理解的实现方式:

方法一:递归实现

递归的核心思路是不断向上查找父级分类,直到父级为null,再把收集到的名称按层级顺序拼接。

function buildCategoryPath(category) {
    // 没有父级时,直接返回当前分类名称
    if (!category.parent) {
        return category.name;
    }
    // 递归获取父级的完整路径,再拼接当前分类名称
    return `${buildCategoryPath(category.parent)} ⟶ ${category.name}`;
}

// 测试示例
const category = {
    id: 15,
    name: "Power",
    childCategories: [],
    parent: {
        id: 10,
        name: "Cables",
        parent: null,
        stockItems: []
    }
};

console.log(buildCategoryPath(category)); // 输出: Cables ⟶ Power

方法二:迭代实现

如果觉得递归逻辑绕,也可以用循环迭代的方式,从当前分类开始往上遍历父级,收集名称后反转顺序再拼接。

function buildCategoryPath(category) {
    const pathNames = [];
    let current = category;
    // 循环遍历,直到找不到父级分类
    while (current) {
        pathNames.push(current.name);
        current = current.parent;
    }
    // 反转数组(收集顺序是子→父,反转后变成父→子),再用分隔符连接
    return pathNames.reverse().join(' ⟶ ');
}

// 测试示例
const category = {
    id: 15,
    name: "Power",
    childCategories: [],
    parent: {
        id: 10,
        name: "Cables",
        parent: null,
        stockItems: []
    }
};

console.log(buildCategoryPath(category)); // 输出: Cables ⟶ Power

两种方法都能实现需求,迭代方式对新手来说更直观,递归写法更简洁,可以根据自己的理解选择使用。

内容的提问来源于stack exchange,提问作者JamieRhys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:45:49