青柠芒果

文章 评论 浏览 27

青柠芒果 2022-05-04 13:55:49
const arr = [
    {
        id: 1,
        name: '广东',
        children: [
            {
                id: 11,
                name: '深圳',
                children: [
                    {
                        id: 111,
                        name: '南山区'
                    },
                    {
                        id: 112,
                        name: '福田区'
                    }
                ]
            }
        ]
    }
]

const id = 112

const fn = (treeData, idsList = [], ids = []) => {
    treeData.forEach(item => {
        const { id, children } = item
        const tempIds = [].concat(ids)
        tempIds.push(id)

        idsList.push(tempIds);

        if (children && !!children.length) {
            fn(children, idsList, tempIds);
        }
    });

    return idsList;
};

const list = fn(arr)


const result = list.filter(item => {
    const lastValue = item[item.length - 1]

    return Number(lastValue) === Number(id)
})

思路:
1、将数组转换为多个一维数组,结果如下所示:

2、循环第一步所得的结果,判断最后一位是不是和要查询的id相同,如果是那么就返回结果

第 92 题:已知数据格式,实现一个函数 fn 找出链条中所有的父级 id

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文