Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在my.ts文件中使用typescript检查地址(category city:mtm)并从json获取特定的用户详细信息?_Angular_Typescript_Ionic Framework - Fatal编程技术网

Angular 如何在my.ts文件中使用typescript检查地址(category city:mtm)并从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”, “地址”:[ { “

我在下面给出了我的json。

我需要检查地址类别类型城市。但我能得到 输出。下面是我的json对象


任何机构都可以帮助我检查(地址类别城市: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),即使按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")))