递归遍历数据算法:(根据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版权协议,转载请附上原文出处链接和本声明。