我在访问此对象时遇到问题:
{
"BTC": {
"price": 13322.848306438736,
"percent_change_24h": 2.00659441,
"market_cap": 246870460628.15366,
"volume_24h": 33956399259.1725,
"circulating_supply": 18529856,
"total_supply": 18529856,
"max_supply": 21000000
},
"ETH": {
"price": 380.8150073343507,
"percent_change_24h": -0.67132589,
"market_cap": 43115533610.355606,
"volume_24h": 15706287212.275429,
"circulating_supply": 113219103.1865,
"total_supply": 113219103.1865,
"max_supply": null
}
}
到目前为止,我已经尝试了Object.key(),map(),使其成为数组,算法方法等。 我可以通过以下方式获取外部对象的列表:
Object.keys(this.state.dataApi).map((value,key)=>(
value
))
例如,我可以通过以下方式获取“ BTC”内部的内容:
this.state.dataApi.BTC
但是我无法一一理解它的内部元素。 这是预期的输出示例
https://i.stack.imgur.com/eK8Ic.png
这些是我的输出成功尝试
https://i.stack.imgur.com/AK6lR.png
注意:这也尝试从状态[],{},“”,“”到“”改变类型,因为它将对象保留为原始类型。
答案 0 :(得分:2)
let obj= {
"BTC": {
"price": 13322.848306438736,
"percent_change_24h": 2.00659441,
"market_cap": 246870460628.15366,
"volume_24h": 33956399259.1725,
"circulating_supply": 18529856,
"total_supply": 18529856,
"max_supply": 21000000
},
"ETH": {
"price": 380.8150073343507,
"percent_change_24h": -0.67132589,
"market_cap": 43115533610.355606,
"volume_24h": 15706287212.275429,
"circulating_supply": 113219103.1865,
"total_supply": 113219103.1865,
"max_supply": null
}
};
console.log(obj["BTC"]);
console.log(obj["ETH"].price);
Object.keys(obj).map((value,key)=>{
console.log(obj[value]);
console.log(obj[value].price);
}
)
你是对的。但是您需要使用['value']
访问对象答案 1 :(得分:0)
您是否尝试过for..in
循环?您可以使用for...in
循环对象。您可以阅读here
const parent = {
"BTC": {
"price": 13322.848306438736,
"percent_change_24h": 2.00659441,
"market_cap": 246870460628.15366,
"volume_24h": 33956399259.1725,
"circulating_supply": 18529856,
"total_supply": 18529856,
"max_supply": 21000000
},
"ETH": {
"price": 380.8150073343507,
"percent_change_24h": -0.67132589,
"market_cap": 43115533610.355606,
"volume_24h": 15706287212.275429,
"circulating_supply": 113219103.1865,
"total_supply": 113219103.1865,
"max_supply": null
}
}
for (const key in parent) { // This is just O(n)
// key - BTC,ETH
console.log(parent[key].price)
console.log(parent[key].percent_change_24h)
}
答案 2 :(得分:0)
使用Object.keys
使您处在正确的轨道上。还有一种称为Object.values
的方法,该方法为您提供对象的每个键的值 。
如果我们的对象是data
,那么Object.keys(data)
将给我们一个二值数组/。之后,例如,我们可以使用map()
进行迭代以获取所有价格:
Object.values(o).map(d => d.price)
let o = {
"BTC": {
"price": 13322.848306438736,
"percent_change_24h": 2.00659441,
"market_cap": 246870460628.15366,
"volume_24h": 33956399259.1725,
"circulating_supply": 18529856,
"total_supply": 18529856,
"max_supply": 21000000
},
"ETH": {
"price": 380.8150073343507,
"percent_change_24h": -0.67132589,
"market_cap": 43115533610.355606,
"volume_24h": 15706287212.275429,
"circulating_supply": 113219103.1865,
"total_supply": 113219103.1865,
"max_supply": null
}
}
console.log(Object.values(o))