我正在嘗試在具有此結構的陣列上呼叫此 deepFilter 函式,但在控制臺中出現此錯誤:TypeError: Cannot read properties of undefined (reading 'reduce')我不知道為什么。我確定這很簡單,但我正在畫一個空白。
有人可以指出我正確的方向嗎?
const items = [
{
"name":"Name1",
"id":58,
"sites":[
{
"id":106,
"name": "Name11",
"items":[
{
"name":"01",
},
{
"name":"02",
},
]
}
]
},
{
"name":"Name2",
"id":47,
"sites":[
{
"name":"Name22",
"id":106,
"items":[
{
"name":"03",
},
{
"name":"04",
},
]
}
]
}
];
const deepFilter = (items, value) => items.reduce((arr, cur) => {
if (cur.name.includes(value)) arr.push(cur);
else if (cur.hasOwnProperty('sites')) {
const subItems = deepFilter(cur.subitems, value);
if (subItems.length) {
cur.subitems = subItems;
arr.push(cur);
}
}
else if (cur.hasOwnProperty('items')) {
const subSubItems = deepFilter(cur.subsubitems, value);
if (subSubItems.length) {
cur.subsubitems = subSubItems;
arr.push(cur);
}
}
return arr;
}, []);
console.log(deepFilter(items, '02'));
uj5u.com熱心網友回復:
因為您的值cur.subitems不是陣列。
您可以通過添加以下內容輕松修復它&& cur.subitems:
else if (cur.hasOwnProperty('sites') && cur.subitems) {
您在函式中使用遞回,因此您應該相應地檢查值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/476980.html
標籤:javascript 数组
上一篇:如何將陣列元素分組到新的組陣列?
下一篇:從兩個另一個創建一個陣列
