Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 搜索数组并将其父元素和子元素保存在新数组中_Javascript_Arrays_Search_Tree - Fatal编程技术网

Javascript 搜索数组并将其父元素和子元素保存在新数组中

Javascript 搜索数组并将其父元素和子元素保存在新数组中,javascript,arrays,search,tree,Javascript,Arrays,Search,Tree,我有一个数组,其中包含id、技能和父属性。我想搜索该数组中的一个元素。如果找到,我会将其保存在新数组中。然后我想搜索它的父项,如果父项也有父项,那么也保存它们。我还想保存搜索元素的子元素(如果有),并在新数组中添加同级元素。发现没有父元素的元素将停止对其他父元素的搜索 var搜索='cde'; 风险值数据=[{ 'id':'99', “技能”:“专业”, “父”:null }, { “id”:“0”, “技能”:“abc”, “父项”:“99” }, { “id”:“1”, “技能”:“bcd

我有一个数组,其中包含id、技能和父属性。我想搜索该数组中的一个元素。如果找到,我会将其保存在新数组中。然后我想搜索它的父项,如果父项也有父项,那么也保存它们。我还想保存搜索元素的子元素(如果有),并在新数组中添加同级元素。发现没有父元素的元素将停止对其他父元素的搜索

var搜索='cde';
风险值数据=[{
'id':'99',
“技能”:“专业”,
“父”:null
}, {
“id”:“0”,
“技能”:“abc”,
“父项”:“99”
}, {
“id”:“1”,
“技能”:“bcd”,
“父”:null
}, {
“id”:“2”,
“技能”:“cde”,
“父项”:“0”
}, {
“id”:“3”,
“技能”:“定义”,
“父项”:“0”
}, {
“id”:“4”,
“技能”:“efg”,
“父项”:“1”
}, {
“id”:“5”,
‘技能’:‘fgh’,
“父项”:“1”
}, {
“id”:“6”,
“技能”:“ghi”,
“父项”:“2”
}, {
“id”:“7”,
“技能”:“嗨”,
“父”:null
}];
var arrayP=[];
搜索键(searchKey);
功能搜索键{
var tmpskill=[];
对于(变量i=0;i函数findChilds(){}
虽然此代码可以回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
function findChilds(id){
    return data.filter(v=>v.parent==id;);
}

function findSiblings(id){
    return data.filter(v=>v.parent==id.parent;);
}