在Javascript中使用索引键值JSON创建新数组

问题描述 投票:0回答:3

我有一个像这样的JSON:

{
  "codeA": {
    "USD": 125.648
  },
  "codeB": {
    "USD": 654.547
  },
  "codeC": {
    "USD": 132.45
  }
}

API调用成功后,我填入新数组:

then(function successCallback(response) {
  var responsePrice = response.data; 
}

我想填充这样的数组:

var pricesCode = 
  pricesCode[0].code = codeA;
  pricesCode[0].currency = USD;
  pricesCode[0].price = 125.648;

我正在使用jQuery $.each函数

$.each(responsePrice, function(key, value) {
    priceCode.push({
        currency: key,
        price: value
    });
});
console.log(priceCode);

但我得到的结果是:

 priceCode[currency[0] = codeA, price[0] = USD, object undefined]

有人可以告诉我正确的代码或类似问题。非常感谢。

javascript jquery json
3个回答
1
投票

你可以结合使用qazxsw poi和qazxsw poi来实现这一目标。请看以下内容。


0
投票

这样做可以获得包含所需数据的完整数组:

Array.prototype.reduce()

0
投票

可能有很多方法可以实现这一点,很快我想出了这个:

var responsePrice = {
  "codeA": {
    "USD": 125.648
  },
  "codeB": {
    "USD": 654.547
  },
  "codeC": {
    "USD": 132.45
  }
}

var pricesCode = Object.keys(responsePrice).reduce(function(acc, code) {
  var currency = Object.keys(responsePrice[code])[0];
  var obj = {
    code,
    currency,
    price: responsePrice[code][currency]
  }
  acc.push(obj);
  return acc;
}, [])

console.log(pricesCode[0].code);
console.log(pricesCode[0].currency);
console.log(pricesCode[0].price);

请检查您正在使用的变量名称(pricesCode与priceCode)

© www.soinside.com 2019 - 2024. All rights reserved.