如何从Json中创建一个新对象作为Typescript中的键值对?

时间:2018-05-24 05:49:59

标签: json typescript

我有一个json对象数组,其中包含货币列表数据。

 [  
   {  
      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"
   }
]

我想形成一个新的对象数组,比如newList,只有美元,加元和欧元的货币值。我可以手动找到对象的位置(例如:说item [3] .value将给出CAD的速率)并更新新对象但我想查找键值并获取值而不是手动获取索引位置。怎么做?

1 个答案:

答案 0 :(得分:1)

我希望这是你所期待的。

这是您的原始列表。

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" }];

这就是你如何通过与他们的id进行比较来提取想要的对象。

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

console.log(newList);

此方法为您进行比较,并在id匹配时返回true。您可以动态删除或添加货币。

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;
}