簡體   English   中英

如何刪除嵌套數組的元素並保留原始結構?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM