使用 Angular 在 Typescript 中读取 JSON 常量的值键
Read a value key of a JSON constant in Typescript with Angular
我正在尝试使用 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 信息访问(上一个函数为真或假):
<div class="ts-cntnr" *ngIf="allowedInfo" >
显然有!有很多方法可以满足您的要求,一种更简单的方法是使用 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"))
你可以试试这个代码
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"
}
我正在尝试使用 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 信息访问(上一个函数为真或假):
<div class="ts-cntnr" *ngIf="allowedInfo" >
显然有!有很多方法可以满足您的要求,一种更简单的方法是使用 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"))
你可以试试这个代码
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"
}