Windows 节点和父链接

Windows 节点和父链接,windows,socket.io,async-await,Windows,Socket.io,Async Await,我有一个json集合,它包含作为数组或键值对的嵌套元素,可以嵌套到任意长度。我需要通过一个数组,找到其中的项,并用它们各自的值转换它们 例如,在下面给定的数组中,我有一个数组 只需一个函数即可获取值 1.我将传递此数组以查找JSON集合中的这两个单元格,并将它们转换为值。这些值可以位于树中的任何位置。我需要选取单元格及其父节点。它应该搜索它们并将它们各自的值放入其中,这样它将从[TRC030-A”,“TRSEE050-A”]切换到[22,12] 一个函数,用于对值进行求和 2.请注意,有集合,其

我有一个json集合,它包含作为数组或键值对的嵌套元素,可以嵌套到任意长度。我需要通过一个数组,找到其中的项,并用它们各自的值转换它们

例如,在下面给定的数组中,我有一个数组

只需一个函数即可获取值 1.我将传递此数组以查找JSON集合中的这两个单元格,并将它们转换为值。这些值可以位于树中的任何位置。我需要选取单元格及其父节点。它应该搜索它们并将它们各自的值放入其中,这样它将从[TRC030-A”,“TRSEE050-A”]切换到[22,12]

一个函数,用于对值进行求和 2.请注意,有集合,其中的单元格是相同的。但如果我在示例中传递了“NSEE050-A”、“NSEE060-A”,它应该拾取它们并将值相加

我需要递归地执行这个javascript。 亲切问候,

{   
"MusicVersion": "1.0.0",
"validationVersion": "1.0.0",
"submissionStage": "editing / submitted for approval etc.",
"PiaonoData": { 
         "musicacademies": [
           {
              "name": "Music Name",
            }]
 },
"MainData": { 
  },
  }

您可以使用
Map
将搜索数组中的键映射到同一数组中的索引。该映射将允许快速检查数据中的属性是否与任何属性匹配,并给出其索引。它还可以与
indexOf
一起使用,但映射速度更快

对于其余部分,它是一个递归函数:找到所有键后即可退出:

功能映射键(obj,键){
const map=newmap(key.map((key,i)=>[key,i]);
常量结果=[];
函数重现(obj){
用于(obj中的道具){
if(对象(对象[prop])==对象[prop]){
复发(obj[prop]);
}否则如果(地图有(道具)){
结果[map.get(prop)]=obj[prop];
删除地图(道具);
如果(!map.size)返回;
}
}
}
复发(obj);
返回结果;
}
//样本数据
const data={“MusicVersion”:“1.0.0”,“validationVersion”:“1.0.0”,“submissionStage”:“编辑/提交审批等”,“PiaonoData”:{“MusicCademies”:[{“name”:“Music name”:“Music name”,“id”:“Music id/UPIN”,“data”:“See-Example Form Object”,“SCI040”:“新加入的会员”}],“MainData”:{“mainBalance”:{“CAATOT”:0,“AFC020-A”:11,“TRC030-A”:22,“TRC040-A”:33,},“非主要数据”:{“TRSEE050-A”:12,“员工薪酬”:[{“NSEE050-A”:12,“NSEE050-B”:22,“NSEE050-C”:40,“NSEE050-D”:54},{“NGEE050-A”:36,“NGEE050-B”:41,“NGEE050-C”:9,“NGEE050-D”:0},{“NLEE050-A”:1,“NLEE050-B”:3,“NLEE050-C”:7,“NLEE050-D”:9},{“MUISCE050-B”:10,“LSRPD”:10,{LSRPD”:22“:54},{“LDSP010-A”:36,“LDSP010-B”:41,“LDSP010-C”:9,“LDSP010-D”:0},{“LDSP010-A”:1,“LDSP010-B”:3,“LDSP010-C”:7,“LSSP010-D”:9}],“音乐转换”:[{“类型”:“简单/复杂/转换”,“TATI010-A”:1,“TATI010-B”:3,“TATIT020-A”:7,“TATI030-B”:9}},,“音乐”:{“AatOverview”1,“TATIC010-A”:3“:”9}”{“TATI010-A”:1,“ATAATI010-B”:3,“OPQ”:7,“ATAATI030-B”:9,},“musicacademies”:[{“name”:“Music name”:“id”:“MusicID”,“data”:“See Example Form Object”,“MCI040”:“new aceigned”}],“otherMusicData”:{“tbc”:null},“MusicCompletionStatuses”:{“tbc”:null},“MusicValidationExplanations”:{“ABC1001”:“fieldValue”:“600”,“userComment”:“额外支出”“},”ABS1196:{“fieldValue:”30“,“userComment:”这就是原因“}}”,LastUpdateBy:“用户名”,“LastUpdateDate:”2016-04-23T18:25:43.511Z“};

日志(映射键(数据,[“TRC030-A”,“NSEE050-A]”)你在问什么问题?请发一个帖子,描述一下你在哪里遇到了麻烦。我有一个问题,答案可能会对你有所帮助。