结合JavaScript中的两个对象?

时间:2019-01-30 17:07:27

标签: javascript json react-native

我有两个JSON文件。

一个看起来像这样:

    {
base: "EUR",
date: "2019-01-30",

rates: {

    USD: 1.1429,
    AND MORE....
    ...
    ...

}
}

和另一个看起来像这样的

{
results: {
USD: {
    currencyName: "United States Dollar",
    currencySymbol: "$",
    id: "USD"
}
}

我想将它们结合在一起 得到一个看起来像这样的对象:

{
results: {
USD: {
    currencyName: "United States Dollar",
    currencySymbol: "$",
    id: "USD",
    value: 1.1429   <====== the change
}
}

我在这里找不到类似的东西... 而且不知道如何开始

我从这些链接中获取值:

https://free.currencyconverterapi.com/api/v6/currencies

https://api.exchangeratesapi.io/latest

具有提取功能:

function getdataFromApiAsync() {
  return fetch('https://api.exchangeratesapi.io/latest')
    .then((response) => response.json())
    .then((responseJson) => {
      return responseJson.rates;
    })
    .catch((error) => {
      console.error(error);
    });
}

1 个答案:

答案 0 :(得分:1)

假设您的结果对象具有如下所示的接口:

{
  [key: string]: {
    currencyName: string;
    currencySymbol: string;
    id: string;
    value?: number;
  }
}

此处的id总是与rates对象的键匹配,那么您可能希望遍历此结果对象的values并从另一个对象中添加一个值对象的费率,如下所示:

Object.values(results).forEach(result => {
  const value = rates[result.id];
  if (value) {
    result.value = value;
  }
});