1 回答

TA貢獻1815條經驗 獲得超6個贊
您可以使用遞歸方法,reduce該方法僅返回找到目標值的子菜單元素并過濾掉其他元素。
const data = [{"menu":"Test","submenu":[{"menu":"Test1"},{"menu":"Test2","submenu":[{"menu":"Test2.1"},{"menu":"Test2.2"},{"menu":"Test2.3"}]},{"menu":"TestNew","submenu":[{"menu":"TestNew1.1"},{"menu":"TestNew1.2"},{"menu":"TestNew1.3"}]}]}]
function search(data, value) {
return data.reduce((r, e) => {
const object = { ...e }
const result = search(e.submenu || [], value)
if (result.length) object.submenu = result
if (e.menu == value || result.length) r.push(object)
return r;
}, [])
}
console.log(search(data, 'Test2.1'))
console.log(search(data, 'TestNew1.3'))
添加回答
舉報