Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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_Php_Arrays_Typescript_Multidimensional Array - Fatal编程技术网

Javascript 通过多维数组与子对象循环并构建路径图

Javascript 通过多维数组与子对象循环并构建路径图,javascript,php,arrays,typescript,multidimensional-array,Javascript,Php,Arrays,Typescript,Multidimensional Array,我有多维数组和子类(子类): 我构建了角度路由,并从API获得了这种数据格式 const项=[{ 显示名称:“Wiadomości”, urlName:“wiadomosci”, 子类别:[{ displayName:'Newsy', urlName:“newsy”, 子类别:[] }, { displayName:“Wydarzenia”, urlName:“wydarzenia”, 子类别:[] }, { displayName:“Komentarze i analizy”, urlName

我有多维数组和子类(子类)

我构建了角度路由,并从API获得了这种数据格式

const项=[{
显示名称:“Wiadomości”,
urlName:“wiadomosci”,
子类别:[{
displayName:'Newsy',
urlName:“newsy”,
子类别:[]
}, {
displayName:“Wydarzenia”,
urlName:“wydarzenia”,
子类别:[]
}, {
displayName:“Komentarze i analizy”,
urlName:“komentarze-i-analizy”,
子类别:[]
}, {
displayName:“Reportaże”,
urlName:'reportaze',
子类别:[]
}]
}, {
displayName:'Prawo',
urlName:'prawo',
子类别:[{
显示名称:“Sprzedaż/zakup”,
urlName:'sprzedaz zakup',
子类别:[{
displayName:'Dom',
urlName:'dom',
子类别:[]
}, {
displayName:'Mieszkanie',
urlName:“mieszkanie”,
子类别:[]
}, {
显示名称:“Działka”,
urlName:‘dzialka’,
子类别:[]
}, {
displayName:'Komercyjne',
urlName:'komercyjne',
子类别:[]
}]
}, {
显示名称:“Najem/dzierżawa”,
urlName:“najem dzierzawa”,
子类别:[{
displayName:'Dom',
urlName:'dom',
子类别:[]
}, {
displayName:'Mieszkanie',
urlName:“mieszkanie”,
子类别:[]
}, {
显示名称:“Prywatny/komercyjny”,
urlName:“prywatny komercyjny”,
子类别:[]
}, {
显示名称:“Działka”,
urlName:‘dzialka’,
子类别:[]
}, {
displayName:“Budynki”,
urlName:“budynki”,
子类别:[]
}]
}, {
displayName:'Podatki',
urlName:'podatki',
子类别:[]
}, {
displayName:“Prawo Budollane”,
urlName:“prawo Budollane”,
子类别:[]
}, {
displayName:“Dziedziczenie”,
urlName:'dziedziczenie',
子类别:[]
}, {
显示名称:“Wzory dokumentów”,
urlName:'wzory dokumentow',
子类别:[]
}]
}, {
displayName:“Finanse”,
urlName:“finanse”,
子类别:[{
displayName:'Kredyty',
urlName:'kredyty',
子类别:[]
}, {
displayName:'Ubezpieczenia',
urlName:“ubezpieczenia”,
子类别:[]
}, {
displayName:“Kalkulatory”,
urlName:“kalkulatory”,
子类别:[]
}, {
displayName:“Inwestycje”,
urlName:“inwestycje”,
子类别:[]
}, {
显示名称:“Dofinansowanie i dotacje”,
urlName:'dofinansowanie-i-dotacje',
子类别:[]
}]
}, {
displayName:“Porady i inspiracje”,
urlName:“porady-i-inspiracje”,
子类别:[{
displayName:“Budowa i remont”,
urlName:“budowa-i-remont”,
子类别:[]
}, {
显示名称:“Użytkowanie”,
urlName:‘uzytkowanie’,
子类别:[]
}, {
显示名称:'Balkon i ogród',
urlName:'balkon-i-ogrod',
子类别:[]
}, {
显示名称:“Aranżacje”,
urlName:“aranzacje”,
子类别:[]
}, {
displayName:“设计”,
urlName:“设计”,
子类别:[]
}]
}, {
displayName:'Eksperci',
urlName:'eksperci',
子类别:[{
displayName:“Felietony”,
urlName:“felietony”,
子类别:[]
}, {
displayName:'Zapytaj eksperta',
urlName:'扎比塔伊埃克斯佩塔',
子类别:[]
}, {
显示名称:“Materialałyźródłowe”,
urlName:“materialy zrodlowe”,
子类别:[]
}]
}];
我绝对需要将服务器的响应映射到一个数组,该数组包含从子类别和urlName构建的路径

输出应为:

const路径=[
“wiadomosci”,
“wiadomosci/newsy”
“wiadomosci/komentarze-i-analizy”,
“wiadomosci/reportaze”,
“普拉沃”,
“prawo/sprzedaz zakup”,
“prawo/sprzedaz zakup/dom”,
“prawo/sprzedaz zakup/mieszkanie”,
“prawo/sprzedaz zakup/dzialka”,
“prawo/sprzedaz zakup/komercyjne”,
“prawo/najem dzierzawa”,
“prawo/najem dzierzawa/dom”,
“prawo/najem dzierzawa/mieszkanie”,
“prawo/najem dzierzawa/prywatny komercyjny”,
“prawo/najem dzierzawa/dzialka”,
“prawo/najem dzierzawa/budynki”,
"波达茨基",,
“prawo budowlane”,
“dziedziczenie”,
“wzory dokumentow”,
“finanse”,
“finanse/kredyty”,
“finanse/ubezpieczenia”,
“finanse/kalkulatory”,
“finanse/inwestycje”,
“finanse/dofinansowanie-i-dotacje”,
“porady-i-inspiracje”,
“porady-i-inspiracje/budowa-i-remont”,
“porady-i-inspiracje/uzytkowanie”,
“porady-i-inspiracje/balkon-i-ogrod”,
“porady-i-inspiracje/aranzacje”,
“porady-i-inspiracje/设计”,
“eksperci”,
“eksperci/felietony”,
“eksperci/zapytaj eksperta”,
“eksperci/materialy zrodlowe”
];
我曾尝试编写递归函数来收集和构建路径,但不幸的是我失败了

你能帮我吗/

我在PHP中的尝试:

您可以尝试以下方法: 循环遍历项目,内部收集子项,返回第一个不带斜杠的父项,并将子项一起返回

const项=[{
显示名称:“Wiadomości”,
urlName:“wiadomosci”,
子类别:[{
displayName:'Newsy',
urlName:“newsy”,
子类别:[]
}, {
displayName:“Wydarzenia”,
urlName:“wydarzenia”,
子类别:[]
}, {
displayName:“Komentarze i analizy”,
urlName:“komentarze-i-analizy”,
子类别:[]
}, {
displayName:“Reportaże”,
urlName:'reportaze',
子类别:[]
}]
}, {
displayName:'Prawo',
urlName:'prawo',
子类别:[{
显示名称:“Sprzedaż/zakup”,
urlName:'sprzedaz zakup',
子类别:[{
displayName:'Dom',
urlName:'dom',
子类别:[]
}, {
displayName:'Mieszkanie',
urlName:“mieszkanie”,
子类别:[]
}, {
显示