使用 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 函数,并将返回的对象打印到控制台。

JavaScript 递归查找树形结构数据中的对象

原文地址: https://www.cveoy.top/t/topic/qkNX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录