【发布时间】:2019-09-25 02:03:15
【问题描述】:
我有一个 api 调用,它在控制台中产生以下结果(在使用 map() 配对之后)。
{…}
CHANGE24HOUR: "$ 11.16"
CHANGEDAY: "$ 3.31"
CHANGEPCT24HOUR: "6.73"
CHANGEPCTDAY: "1.90"
FROMSYMBOL: "Ξ"
HIGH24HOUR: "$ 183.38"
HIGHDAY: "$ 183.38"
但是,无论我尝试什么,我都无法获得它的属性。该对象称为“coinStats”。
我尝试了以下方法:
coinStats.HIGHDAY = undefined
coinStats['HIGHDAY'] = undefined
coinStats["HIGHDAY"] = undefined
尝试将其转换为数组以查看是否有助于使用
Object.values(coinStats) // Would not work
我相信答案非常简单。但我只是不确定它是什么?
原始的原始api结果如下所示:
(1) […]
0: Object { CoinInfo: {…}, RAW: {…}, DISPLAY: {…} }
length: 1
<prototype>: [
我要查找的信息以 DISPLAY -> USD 为单位。我使用了 map() 函数来返回该子对象。
我用来获取数据的代码基本上如下:
const API = 'https://min-api.cryptocompare.com/data/top/mktcapfull?tsym=USD&page=1';
fetch(API)
.then(results => results.json())
.then(coinData => {
const view = coinData.Data.filter(obj => { return obj.CoinInfo.Name === TRX});
})
const coinFeedAbridged = view.map(item => item.DISPLAY.USD);
const coinStats = coinFeedAbridged[0];
console.dir(coinStats);
例如,我无法访问 coinStats.HIGHDAY...我得到“未定义”。
【问题讨论】:
-
您的“api 调用”是如何工作的?您如何检索它以及对象的形状是什么?
-
尝试:
console.log(coinFeed)并发布输出。 -
这正是我上面所说的。嗯......那来自console.dir(coinFeed)。
-
它们可能是不可枚举、不可写的属性。检查
Object.getOwnPropertyDescriptor(coinFeed, 'HIGHDAY')的输出。也可能是对象被冻结:检查Object.isFrozen(coinFeed) -
如果我们没有重现问题的代码,很难猜测。另一件事是控制台还显示了继承的属性,这可能会导致解释。但是可能会发生很多事情......我们需要mvce
标签: javascript arrays reactjs javascript-objects