JavaScript 递归查找树形结构数据中的对象
使用 JavaScript 递归查找树形结构数据中的对象
您可能需要从树形结构数据中查找特定 ID 的对象。可以使用递归来实现此功能。以下是一个示例代码:
function getObjectById(data, id) {
for (let i = 0; i < data.length; i++) {
if (data[i].id === id) {
return data[i];
}
if (data[i].children) {
const result = getObjectById(data[i].children, id);
if (result) {
return result;
}
}
}
return null;
}
// 示例用法
const treeData = [{ id: 1, name: 'a', children: [{ id: 11, name: 'aa', children: null }, { id: 12, name: 'ab' }] }, { id: 2, name: 'cc' }];
const id = 12;
const object = getObjectById(treeData, id);
console.log(object);
在上面的代码中,getObjectById函数接受一个数组和一个 ID 作为参数。它首先遍历数组中的每个对象,检查对象的 ID 是否与指定的 ID 相等。如果相等,则返回该对象。如果对象有 children 属性,递归调用 getObjectById 函数来在子节点中查找匹配的对象。如果找到匹配的对象,则返回该对象;否则返回 null。
在示例用法中,我们使用 ID 为 12 调用 getObjectById 函数,并将返回的对象打印到控制台。
原文地址: https://www.cveoy.top/t/topic/qkNX 著作权归作者所有。请勿转载和采集!