[英]How can I remove elements of a nested array and retain original structure?
我正在開發一個新的Angular應用程序,我正在構建一個下拉導航。 我目前正在使用Factory來返回控制器中的導航項數組,如下所示:
var sections = this.NavMenusFactory.sections;
菜單結構如下:
我需要遍歷數組並刪除用戶無權訪問的任何項目,但也保留原始結構。 這由當前用戶和數組對象中的requiredPermissions
索引決定。
我可以訪問lodash庫,所以通過嘗試過濾和刪除功能一直在玩這個。 沒有什么比我需要的更准確。 快速舉例說明我是如何嘗試的:
var sections = this.NavMenusFactory.sections;
this.dropdownNavItems = [];
forEach(sections, (section) => {
if (section.section === 'financials') {
this.dropdownNavItems = this.dropdownNavItems.concat(section.pages.filter(navitem => {
// console.log("section", navitem);
return !navitem.requiredPermissions || this.Permissions.parseAccessByValue(selectedVehicle, navitem.requiredPermissions);
}));
}
});
我無法保留原始結構,就像刪除了項目時的圖像一樣。 我是Javascript的新手,所以一些指導將非常感激。
你的代碼看起來對我來說是正確的,我建議你的問題實際上更可能是角度相關的。
假設您正在使用ng-repeat
來迭代所有結果,那么您的問題很可能涉及ng-repeat
的“track by”部分。 請參閱ng-repeat文檔的這一部分您可以嘗試使用track by item.name或類似的東西,看看是否能解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.