【发布时间】:2019-05-15 04:11:03
【问题描述】:
我有这个文本文件 (800kb url),其中存储了一些 JSON 数据。从文本文件中加载数据后,我想更改内容并对其进行循环。
我是使用这个简单的示例函数完成的;
var convertPriceFormat = function(content){
var obj = {};
for(var appid in content){
var gameEntry = content[appid];
for(var hashName in gameEntry){
var entry = gameEntry[hashName];
obj[hashName] = entry.price;
};
console.log(Object.keys(gameEntry).length);
};
return obj;
}
返回的对象中有四个子对象,它们都有大约3000个条目,数量并不多。
每个条目的所有数据都是这样结构化的;
'Pinstripe Suit Jacket': {
average_price: 0.02,
listings: 11,
volume: 1185.03,
price: 0.03
}
问题是;由于某些奇怪的原因,当我记录 gameEntry 的长度(即每个子对象的条目总数)时,第一个日志和第二个日志之间大约有 12 秒。
这是为什么?
加载时间(相对自开始以来,数字是它必须循环的条目数量):
2373 '3.48s'
5769 '24.422s'
1405 '25.326s'
641 '25.436s'
【问题讨论】:
-
第一个日志显示是否也需要 12 秒?
-
@ack_inc 自服务器启动以来大约 5 秒,最后 2 秒几乎是即时的,它们都有
-
我想说
content[appid]在这种情况下成本很高,因为对象中有 3000 个条目,但 12 秒太多了。 -
您可以尝试使用
var appid of Object.keys(content)并与gameEntry相同吗?我唯一的猜测是in也会循环其他属性。 -
@jhp 刚刚尝试过,还记录了在显示最后一行之前需要多少秒。它给了我同样的结果。从每个条目开始查看价格。
标签: javascript node.js object