js或者es6 已知id为222的对象数据,如何查询并返回该数据中parentId: 7对应的对象父节点数据的对象

要查询并返回id为222的对象数据中parentId为7对应的对象的父节点数据,我们需要遍历整个data数组,找到id为222的对象,并从其父节点中提取信息。由于您提供的data数组中的对象格式存在问题(例如,对象的键值对应该用花括号{}包围),我将先帮您修正格式,然后提供查询的代码。

修正后的data数组格式如下:

const data = [{"id": 1,"name": "常用指标","parentId": 0,"signalTypeIds": "","harmonicTimes": "","children": [{"id": 7,"name": "相电压","parentId": 1,"signalTypeIds": {"0": 1,"1": 94,"2": 161,"3": 228,"4": 295},"harmonicTimes": "","children": [{"children": undefined,"harmonicTimes": "","id": 222,"label": "A相","name": "A相","parentId": 7,"signalTypeIds": { "0": 1, "1": 94, "2": 161, "3": 228, "4": 295 },"value": "A相"}]}]},{"id": 3,"name": "电压电流功率","parentId": 0,"signalTypeIds": "","harmonicTimes": "","children": [{"id": 4,"name": "相电压","parentId": 3,"signalTypeIds": {"0": 1,"1": 94,"2": 161,"3": 228,"4": 295},"harmonicTimes": "","children": []}]}
];

现在,我们可以使用以下递归函数来查询并返回id为222的对象的父节点数据:

function findParentNodeById(id, data) {for (const item of data) {if (item.children) {for (const child of item.children) {if (child.children) {// 递归搜索孙节点const result = findParentNodeById(id, child.children);if (result) return result; // 如果在孙节点中找到,返回结果} else if (child.id === id) {// 找到id为222的对象,返回其父节点return child;}}}}return null; // 如果没有找到,返回null
}const parentNode = findParentNodeById(222, data);console.log(parentNode); // 这将输出id为222的对象的父节点数据

这段代码定义了一个findParentNodeById函数,它接受两个参数:要搜索的id和要搜索的数组。函数内部,它遍历提供的数组及其所有子数组,查找id为指定值的对象。当找到id为222的对象时,它返回该对象的父节点数据。如果没有找到匹配的对象,函数返回null

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/20662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年5月总结及随笔之快乐五一

1. 回头看 日更坚持了517天。 读《天才与算法:人脑与AI的数学思维》更新完成 2023年至2024年5月底累计码字1177253字,累计日均码字2277字。 2024年5月码字95875字,同比增长66.7%,环比增长9.3%,日均码字数3092字&am…

jenkins快速入门

Jenkins 是啥? Jenkins 是一个超级能干的自动化助手,它的主要任务是帮你自动构建项目、测试代码、部署应用等等,就像你告诉它:“嘿,Jenkins,我改了代码,你帮我看看能不能正常运行,没…

STM32 定时器与PWM的LED控制

学习目标: 1. 使用定时器的某一个通道控制LED周期性亮灭; 2. 采用定时器PWM模式,让 LED 以呼吸灯方式渐亮渐灭。 一、定时器 1、STM32定时器介绍 STMicroelectronics是STM32微控制器中的重要块,具有丰富的外设和功能&#xff0…

Dijkstra求最短路篇一(全网最详细讲解两种方法,适合小白)(python,其他语言也适用)

前言: Dijkstra算法博客讲解分为两篇讲解,这两篇博客对所有有难点的问题都会讲解,小白也能很好理解。看完这两篇博客后保证收获满满。 本篇博客讲解朴素Dijkstra算法,第二篇博客讲解堆优化Dijkstra算法Dijkstra求最短路篇二(全网…

从C++示例理解开闭原则

开闭原则要求我们在编写代码时,尽量不去修改原先的代码,当出现新的业务需求时,应该通过增加新代码的形式扩展业务而不是对原代码进行修改。 假如我们现在有一批产品,每个产品都具有颜色和大小,产品其定义如下&#xf…

父子进程概述

父子进程概述 总结了两篇博客,对父子进程涉及的问题进行了简要总结(参考博客在文章末尾) 创建进程的目的一般有两个: 一是父进程希望生成一份自己的副本,执行同一个程序中不同的代码片段。二是让子进程执行不同的程序…

python with 和 上下文管理器

with with操作写法简单又安全 文件操作使用with会自动调用关闭文件操作,即使出现异常也会自动调用文件关闭操作 上下文管理器 with语句强大的根本是由上下文管理器支持的 通过open打开的的文件,赋值给的一个变量file,file就是文件对象&am…

linux docker常用命令记录

一、防火墙 1. 开启防火墙 systemctl start firewalld 2.查看防火墙状态 systemctl status firewalld 二、docker 1.启动docker systemctl start docker 2.关闭docker systemctl stop docker 3.重启docker systemctl restart docker4.查看docker 运行状态 systemc…

Kotlin 函数

文章目录 函数的定义函数的返回值参数默认值 & 调用时参数指定函数作用域Lambda 表达式匿名函数内联函数扩展函数中缀函数递归函数 & 尾递归函数 函数的定义 函数可以理解成一个小小的加工厂,给入特定的原材料,它就会给出特定的产品。 fun [接…

知识运维概述

文章目录 知识运维研究现状技术发展趋势 知识运维 由于构建全量的行业知识图谱成本很高,在真实的场景落地过程中,一般遵循小步快走、快速迭代的原则进行知识图谱的构建和逐步演化。知识运维是指在知识图谱初次构建完成之后,根据用户的使用反馈…

小白跟做江科大32单片机之对射式红外传感器计次

原理部分 1中断示意图,中断会打断主函数的执行,终端执行完成之后再返回主函数继续执行 2.STM32中断 这些灰色的是内核中断 这些白色的是普通中断 3.NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组…

独孤思维:10个T的赚钱资料,要不要

01 今天有一个通过网站引流过来的粉丝。 问我,为啥网站不设置付费,这样直接转化成网站vip。 我说,我想把用户沉淀到私域。 其实这个问题,独孤在早年做网站的时候也思考过。 前端给资料,是为了后端引流加个人号&am…

java-this关键字

Java 中的 this 关键字是一个特殊的引用,它代表当前对象。在 Java 中,this 关键字可以在类的构造函数、方法、块和初始化语句中使用。this 关键字的主要作用是: 1. 引用当前对象的属性(Field):使用 this 关…

OCP题库

Q2.分析下面的语句和输出: mysql> SHOW GRANTS FOR jsmith; ------------------------------------------------------------------------------------------------------------------- IGrants for jsmith% | -----------------------------------------------------------…

Redis缓存(笔记一:缓存介绍和数据库启动)

目录 1、NoSQL数据库简介 2、Redis介绍 3、Redis(win系统、linux系统中操作) 3.1 win版本Redis启动 3.2 linux版本Redis启动 1、NoSQL数据库简介 技术的分类:(发展史) 1、解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、…

Filter和ServletContext和Listener

目录 Filter案例 解决全站乱码问题 登录权限校验 ServletContext对象 Listener(监听器) Filter案例 解决全站乱码问题 我们每次访问每个servlet都要书写处理请求和响应乱码的代码,这样代码十分冗余,所以我们可以在过滤中 We…

Java——变量

一、变量介绍 变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 1、变量声明和初始化 变量的声明: int a; i…

44-1 waf绕过 - WAF的分类

一、云 WAF 通常包含在 CDN 中的 WAF。在配置云 WAF 时,DNS 需要解析到 CDN 的 IP 上。请求 URL 时,数据包会先经过云 WAF 进行检测,如果通过检测,再将数据包流向主机。 二、硬件IPS/IDS防护、硬件WAF 硬件IPS/IDS防护&#xff…

VS Code 开发小技巧

VS Code的开发小技巧 添加代码片段 平时开发的时候,可以快速创建一个空白的模板。 一个快速生成代码片段的网站:https://snippet-generator.app/ 打开网站,把常用的模板代码复制进去,就会自动生成VS Code可以使用的代码片段了。…

最低要求条件下的商环定义

从一篇老外的书籍看到的,感觉挺不错,记录下!!! 【商环定义】(最低要求) 设 R ≠ { 0 } R \neq \left\{ 0 \right\} R{0}为交换幺环,设子集 S ⊆ R S \subseteq R S⊆R满足乘法运…