我有一個資料陣列
var data=[{
"key": "KUZEY",
"items": [
{
"key": "MARMARA",
"items": [
{
"key": "T100",
"items": [
{
"Ref": 1,
"ApprovedReserveQuantity": 1
}
]
}
]
},
{
"key": "MARMARA 2",
"items": [
{
"key": "T100",
"items": [
{
"Ref": 2,
"ApprovedReserveQuantity": 1
}
]
}
]
}
] }]
我想在呼叫函式時獲取專案。怎么能做到遞回方法?
groupedItems=recursiveMethod(data)
groupedItems==>[{"Ref": 1,"ApprovedReserveQuantity": 1},{"Ref": 2,"ApprovedReserveQuantity": 1}]
uj5u.com熱心網友回復:
groupedItems:any[]=[];
recursiveMethod(element){
if(element.items==null)
this.groupedItems.push(element)
if (element.items != null){
let i;
for(i=0; i < element.items.length; i ){
this.recursiveMethod(element.items[i]);
}
}
}
它起作用了
uj5u.com熱心網友回復:
在您的答案中找不到任何“關鍵”檢查。盡管我不完全相信我的功能,并且對它的作業原理感到困惑,但如果您調整/調整它,它可以重復使用。
const extractInnermostByKey = (data, targetKey, res = []) => {
data.forEach((obj) => {
for (let key of Object.keys(obj)) {
if (key === targetKey) {
// console.log(res); observe res
res.shift();
res.push(...obj[key]);
return extractInnermostByKey(res, targetKey, res);
}
}
});
return res;
};
const groupedItems = extractInnermostByKey(data, 'items');
console.log(groupedItems);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/339343.html
標籤:javascript 递归数据结构
上一篇:如何從API中找到一組數字的平均值并顯示它。資料是一個物件陣列,里面是一個成績陣列
下一篇:組合物件陣列中父鍵相同的子項
