递归遍历树形数据算法:(根据id返回数据对象)

递归遍历数据算法:(根据id返回数据对象)
// 数据源
var data = [
            {
                "id": 100000,
                "name": "直线运动零件",
                "items": [
                    {
                        "id": 100100,
                        "name": "单轴驱动器/单轴机器人",
                        "items": [
                            {
                                "id": 100101,
                                "name": "单轴驱动器"
                            },
                            {
                                "id": 100102,
                                "name": "单轴机器人"
                            },
                            {
                                "id": 100103,
                                "name": "多轴机器人03"
                            },
                            {
                                "id": 100104,
                                "name": "直线电机模组"
                            }
                        ]
                    },
                    {
                        "id": 100200,
                        "name": "直线导轨",
                        "items": [
                            {
                                "id": 100201,
                                "name": "直线导轨组件"
                            }
                        ]
                    },
                    {
                        "id": 100300,
                        "name": "滚珠丝杠",
                        "items": [
                            {
                                "id": 100301,
                                "name": "滚珠丝杠"
                            }]
                    },
                    {
                        "id": 100400,
                        "name": "支座组件",
                        "items": [
                            {
                                "id": 100401,
                                "name": "支座组件"
                            }]
                    },
                    {
                        "id": 100500,
                        "name": "梯形丝杠",
                        "items": [
                            {
                                "id": 100501,
                                "name": "梯形丝杠"
                            },
                            {
                                "id": 100601,
                                "name": "梯形丝杠用螺帽"
                            }]
                    }
                ]
            },
            {
                "id": 200000,
                "name": "旋转/传动/传送零件",
                "items": [
                    {
                        "id": 200100,
                        "name": "输送机",
                        "items": [
                            {
                                "id": 200101,
                                "name": "输送机"
                            }]
                    },
                    {
                        "id": 200200,
                        "name": "轴承及配件",
                        "items": [
                            {
                                "id": 200201,
                                "name": "滚珠轴承"
                            },
                            {
                                "id": 200202,
                                "name": "滚针轴承"
                            },
                            {
                                "id": 200203,
                                "name": "带树脂轴承"
                            },
                            {
                                "id": 200204,
                                "name": "外螺纹型轴承"
                            },
                            {
                                "id": 200205,
                                "name": "塑胶轴承"
                            }]
                    }
                ]
            }]
 
  递归方法:
  	function getItem(data, id) {
            for (let i = 0; i < data.length; i++) {
                let item = data[i];
                if (item.id === id) {
                    return item;
                } else if (item.items && item.items.length > 0) {
                    let result = getItem(item.items, id)
                    if (result) return result
                }

            }
            return null;
        }
   console.log(getItem(data, 100104));// { id: 100104, name: '直线电机模组'}

版权声明:本文为m0_54128610原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。