我正在从json文件中读取数据并将其存储在javascript中的对象中,我正在使用d3js库读取该文件。
这是data.json文件中原始数据的样子:
UNIQUE
我阅读了这篇文章,然后过滤掉一些空条目,还分别解析了日期和整数值,这是相同的代码:
{
"bitcoin": [
{
"24h_vol": null,
"date": "12/5/2013",
"market_cap": null,
"price_usd": null
},
{
"24h_vol": null,
"date": "13/5/2013",
"market_cap": null,
"price_usd": null
},
{
"24h_vol": "0",
"date": "14/5/2013",
"market_cap": "1500517590",
"price_usd": "135.3"
},...]
"bitcoin_cash": [
{
"24h_vol": null,
"date": "12/5/2013",
"market_cap": null,
"price_usd": null
},
{
"24h_vol": null,
"date": "13/5/2013",
"market_cap": null,
"price_usd": null
},...]
}
正如您看到的控制台输出所示,原始数据也已解析了date,market_cap和price_usd的值,不确定为什么会这样。
感谢您的时间。
PS:不仅会在问题Is Chrome's JavaScript console lazy about evaluating arrays?
中建议在Chrome中发生这种情况答案 0 :(得分:1)
尝试这样的事情:
$("#coin-select").change(function() {
var coinType = this.value;
var coinData = data[coinType];
var cleanData = coinData.filter(x => x.price_usd)
.map(d => ({
price_usd: d.price_usd =+ d.price_usd,
market_cap: d.market_cap =+ d.market_cap,
date: parsedDate(d.date)
}));
update(cleanData);
});
这可确保您从map
返回一个新对象,这样就不会mutate
原始对象,并且还会清理掉一些不需要的显式返回。