我有一个像这样的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]
有人可以告诉我正确的代码或类似问题。非常感谢。
你可以结合使用qazxsw poi和qazxsw poi来实现这一目标。请看以下内容。
这样做可以获得包含所需数据的完整数组:
Array.prototype.reduce()
可能有很多方法可以实现这一点,很快我想出了这个:
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)