查詢樹狀菜單,返回新的樹狀菜單

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            let menus = [
                {
                    name: '河南',
                    children: [
                        {
                            name: '鄭州',
                            children: [
                                {
                                    name: '金水區(qū)'
                                },
                                {
                                    name: '中原區(qū)'
                                }
                            ]
                        },
                        {
                            name: '信陽',
                            children: [
                                {
                                    name: '淮濱縣'
                                }
                            ]
                        }
                    ]
                },
                {
                    name: '湖北',
                    children: [
                        {
                            name: '武漢市',
                            children: [
                                {
                                    name: '武漢火車站'
                                }
                            ]
                        },
                        {
                            name: '黃石市',
                            children: [
                                {
                                    name: '黃岡'
                                }
                            ]
                        }
                    ]
                }
            ]
            let mmm = JSON.parse(JSON.stringify(menus))
            let key = '中原區(qū)'
            const findTree = ({ tree, field, keyword }) => {
                if (!(tree && tree.length)) {
                    return []
                }
                let na = []
                na = tree.map(item => {
                    if (item?.[field]?.toString()?.includes(keyword)) {
                        return item
                    }
                    if (item.children && item.children.length) {
                        const nc = findTree({
                            tree: item.children,
                            field,
                            keyword
                        })
                        if (nc && nc.length) {
                            return {
                                ...item,
                                children: nc
                            }
                        }
                        return null
                    }
                    return null
                })
                na = na.filter(item => item != null)
                return na
            }
            let newm = findTree({
                keyword: key,
                tree: menus,
                field: 'name'
            })
            console.log(newm)
        </script>
    </body>
</html>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容