簡體   English   中英

我在側面數組中使用了不同的鍵的數組,我想使用角度6中的HTML端的特定鍵來獲取特定的數組

[英]I have array in side array with different key I want fetch the particular array using particular key from HTML side in angular 6

sqlArray = [
  {
    module_idn: [
      {
        "K": "0",
        "V": "ABC"
      },
      {
        "K": "1",
        "V": "XYZ"
      }
    ]
  }
]

這是我的數組,我想通過特定鍵獲取獲取的數據

<select class="form-control select" name="{{fl?.table_field}}" [value]="fl?.default_value" [(ngModel)]="fl.default_value">
    <option *ngFor="let dynamic of sqlArray[fl.table_field]" value="{{dynamic.k}}">{{dynamic.v}}</option>
</select>

HTML中的fl.table_field具有相同的鍵名,即“ module_idn”。

我如何獲取要顯示的特定數組,並且sqlArray中的鍵值可以是多個。

嵌套的ngFor應該可以解決問題。 但是,您可能需要考慮展平此數據結構,或者提取有趣的部分,或者最終提取整個組件來處理每件事(然后,您首先需要ngFor來“切片”主數組,然后將每個嵌套的數組分配給另一個組件。

您需要對子結構進行遞歸搜索。 您可以使用以下函數對n個級別進行遞歸搜索

  findObjects(obj, targetProp) {
    let finalResults = [];

    function getObject(theObject) {
      let result = null;
      if (theObject instanceof Array) {
        for (let i = 0; i < theObject.length; i++) {
          getObject(theObject[i]);
        }
      }
      else {
        for (let prop in theObject) {
          if (theObject.hasOwnProperty(prop)){
            if (prop === targetProp) {
              finalResults.push(theObject);
            }
            if (theObject[prop] instanceof Object || theObject[prop] instanceof Array){
              getObject(theObject[prop]);
            }
          }
        }
      }
    }

    getObject(obj);
    return finalResults;
  }

要獲得“ K”的鍵列表,您應該像這樣調用它,它將返回一個數組。

this.findObjects(this.sqlArray, "K");

或您的ngFor喜歡

*ngFor="let dynamic of findObjects(sqlArray, 'K')"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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