我正在嘗試使用 Angular 在 Typescript 中讀取 JSON 常量中的值,但僅出于性能考慮,我不知道是否有一種方法可以使用框架中包含的屬性進行讀取(或者是否存在另一種方法可以做得更好) , 當然)。這是我的 JSON 常量值:
const myConstant= {
data : [
{
key1: "5",
key2: "extract",
key3: "unique1"
},
{
key1: "5",
key2: "extract",
key3: "unique2"
},
{
key1: "5",
key2: "extract",
key3: "unique3"
}
]
};
此常量已匯出到另一個 TS 檔案中,只是為了找到key3值以在條件中驗證它。
validateInfo(cod:string){
for (var i = 0; i < myConstant.data.length; i ){
var obj = myConstant.data[i];
for (var key in obj){
var value = obj[key];
if (key== "key3"){
if (value == cod){
return true;
}
}
}
}
return false;
}
所以我的問題是,有沒有一種方法可以在不進行回圈的情況下提取“key3”值?喜歡
myConstant.find(data.key3,'unique3');
是什么原因?我試圖在前端隱藏視圖,以防用戶不允許使用 JSON 資訊進行訪問(前一個函式為 true 或 false):
<div class="ts-cntnr" *ngIf="allowedInfo" >
uj5u.com熱心網友回復:
顯然有!有很多方法可以滿足您的要求,一種更簡單的方法是使用some()來檢查是否至少有一個物件的鍵名為key3,回傳一個布爾結果,這是您想要的輸出。
const myConstant = {
data: [{
key1: "5",
key2: "extract",
key3: "unique1"
},
{
key1: "5",
key2: "extract",
key3: "unique2"
},
{
key1: "5",
key2: "extract",
key3: "unique3"
}
]
};
console.log(myConstant.data.some(subData => Object.keys(subData).includes("key3")))
// UPDATE
console.log(myConstant.data.some(subData => Object.keys(subData).includes("key3") && subData["key3"] == "unique3"))
uj5u.com熱心網友回復:
你可以試試這個代碼
var item= findItem(myConstant.data, "key3","unique3");
功能
function findItem(items, key,value) {
const result = items.filter(function(item) {
for (const property in item)
if(property==key && item[property]==value) return item;
});
return result != undefined ? result[0] : null;
};
結果
{
"key1": "5",
"key2": "extract",
"key3": "unique3"
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/388871.html
