Angular 如何在my.ts文件中使用typescript检查地址(category city:mtm)并从json获取特定的用户详细信息?
我在下面给出了我的json。 我需要检查地址类别类型城市。但我能得到 输出。下面是我的json对象Angular 如何在my.ts文件中使用typescript检查地址(category city:mtm)并从json获取特定的用户详细信息?,angular,typescript,ionic-framework,Angular,Typescript,Ionic Framework,我在下面给出了我的json。 我需要检查地址类别类型城市。但我能得到 输出。下面是我的json对象 任何机构都可以帮助我检查(地址类别城市:mtm)并仅获取特定的用户详细信息?使用您的json,即使您按city=“mtm”筛选,它也会返回当前json中的所有值。假设您有一个不同的json,您可以执行以下操作 演示 var myArray=[ { “用户名”:“ramu”, “用户id”:“222”, “profileImage”:“ramu.jpg”, “地位”:“15”, “地址”:[ { “
任何机构都可以帮助我检查(地址类别城市:mtm)并仅获取特定的用户详细信息?使用您的json,即使您按city=“mtm”筛选,它也会返回当前json中的所有值。假设您有一个不同的json,您可以执行以下操作 演示
var myArray=[
{
“用户名”:“ramu”,
“用户id”:“222”,
“profileImage”:“ramu.jpg”,
“地位”:“15”,
“地址”:[
{
“类型”:“永久”,
“城市”:“mtm”,
“pin”:“654654”,
“个人”:[
{
“年龄”:“26岁”,
“颜色”:“白色”
}
]
},
{
“类型”:“住宅”,
“城市”:“钦奈”,
“pin”:“76755624”,
“个人”:[
{
“年龄”:“26岁”,
“颜色”:“绿色”
}
]
}
]
},
{
“用户名”:“raju”,
“用户id”:“222”,
“profileImage”:“ramu.jpg”,
“地位”:“15”,
“地址”:[
{
“类型”:“永久”,
“城市”:“mtm”,
“pin”:“521001”,
“个人”:[
{
“年龄”:“26岁”,
“颜色”:“红色”
}
]
},
{
“类型”:“住宅”,
“城市”:“钦奈”,
“pin”:“600024”,
“个人”:[
{
“年龄”:“26岁”,
“颜色”:“蓝色”
}
]
}
]
}
];
让filteredArray=myArray
.过滤器((元素)=>
element.address.some((address)=>address.city=='mtm');
控制台日志(filteredArray)使用json编码>,即使按city=“mtm”过滤,它也会返回当前json中的所有值。假设您有一个不同的json,您可以执行以下操作
演示
var myArray=[
{
“用户名”:“ramu”,
“用户id”:“222”,
“profileImage”:“ramu.jpg”,
“地位”:“15”,
“地址”:[
{
“类型”:“永久”,
“城市”:“mtm”,
“pin”:“654654”,
“个人”:[
{
“年龄”:“26岁”,
“颜色”:“白色”
}
]
},
{
“类型”:“住宅”,
“城市”:“钦奈”,
“pin”:“76755624”,
“个人”:[
{
“年龄”:“26岁”,
“颜色”:“绿色”
}
]
}
]
},
{
“用户名”:“raju”,
“用户id”:“222”,
“profileImage”:“ramu.jpg”,
“地位”:“15”,
“地址”:[
{
“类型”:“永久”,
“城市”:“mtm”,
“pin”:“521001”,
“个人”:[
{
“年龄”:“26岁”,
“颜色”:“红色”
}
]
},
{
“类型”:“住宅”,
“城市”:“钦奈”,
“pin”:“600024”,
“个人”:[
{
“年龄”:“26岁”,
“颜色”:“蓝色”
}
]
}
]
}
];
让filteredArray=myArray
.过滤器((元素)=>
element.address.some((address)=>address.city=='mtm');
控制台日志(filteredArray)代码>@Bharat@Sajeetharan, Yes@Bharat@萨吉塔兰,是的
[
{
"username": "ramu",
"user_id": "222",
"profileImage": "ramu.jpg",
"status": "15",
"address": [
{
"type": "permanent",
"city": "mtm",
"pin": "654654",
"personal": [
{
"age": "26",
"color": "white"
}
]
},
{
"type": "residential",
"city": "chennai",
"pin": "76755624",
"personal": [
{
"age": "26",
"color": "green"
}
]
}
]
},
{
"username": "raju",
"user_id": "222",
"profileImage": "ramu.jpg",
"status": "15",
"address": [
{
"type": "permanent",
"city": "mtm",
"pin": "521001",
"personal": [
{
"age": "26",
"color": "red"
}
]
},
{
"type": "residential",
"city": "chennai",
"pin": "600024",
"personal": [
{
"age": "26",
"color": "blue"
}
]
}
]
}
]
class AddressLookUp{
lookup:{ [index:string]: any};
userArray:Array<Object>;
constructor(users:Array<Object>){
this.userArray = users;
this.lookup={};
this._buildLookUp()
}
private _buildLookUp():void{
this.userArray.forEach((currentU:Object,_indexU:number)=>{
(<any>currentU).address.forEach((currentA:Object,_indexA:number)=>{
if((<any>currentA).city in this.lookup){
this.lookup[(<any>currentA).city].push(_indexU)
}else{
this.lookup[(<any>currentA).city]=new Array(_indexU)
}
})
})
}
findByAddress(address:string):Array<Object>{
return this.userArray.filter((c,i)=>{
return i in this.lookup[address]
})
}
}
let lookup = new AddressLookUp(userArray)
console.log(JSON.stringify(lookup.findByAddress("mtm")))