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