简体   繁体   中英

How to form a new object from a json as key value pair in Typescript?

I have a below json array of objects which have data of currency list.

 [  
   {  
      id:"AUD",
      value:"1.55"
   },
   {  
      id:"BGN",
      value:"1.95"
   },
   {  
      id:"USD",
      value:"1.17"
   },
   {  
      id:"CAD",
      value:"1.51"
   },
   {  
      id:"EUR",
      value:"1"
   },
   {  
      id:"INR",
      value:"80.00"
   }
]

I want to form a new array of object say newList with only currency value for USD, CAD and EUR. I can manually find the position of the object(eg: say item[3].value will give rate for CAD)and update the new object but I want to look for key values and get the values instead of getting index positions manually. How to do the same?

I hope this is what you expect.

This is your original list.

const list = [{ id: "AUD", value: "1.55" }, { id: "BGN", value: "1.95" }, { id: "USD", value: "1.17" }, { id: "CAD", value: "1.51" }, { id: "EUR", value: "1" }, { id: "INR", value: "80.00" }];

And this is how you can extract the wanted objects by comparison with their id.

const newList = list.filter(el => this.matches(el.id));

console.log(newList);

This method does the comparison for you and returns true when id matches. You can dynamically remove or add currencies.

private matches(id: string): boolean {
    let match: boolean = false;

    switch (id) {
        case 'AUD':
            match = true;
            break;
        case 'USD':
            match = true;
            break;
        case 'EUR':
            match = true;
            break;
        default:
            match = false;
            break;
    }

    return match;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM