我无法打印“ valores”数组中的任何项目。我不知道发生了什么我在做一个sintaxis错误吗?当我执行console.log(valores.length)结果为0时。
var valores = new Array();
fetch("https://mindicador.cl/api")
.then (data => data.json())
.then (data => {
valores["dolar"] = data.dolar.valor;
valores["euro"] = data.euro.valor;
valores["utm"] = data.utm.valor;
valores["uf"] = data.uf.valor;
});
for (var index in valores){
document.write(valores[index]+"<br>");
}
答案 0 :(得分:5)
您的问题是时间。您向服务器承诺信息,并填充valores
数组。但是问题是您在以下时间立即执行for循环:
for (var index in valores){
document.write(valores[index]+"<br>");
}
您需要在document.write
方法内处理then
.then (data => {
valores["dolar"] = data.dolar.valor;
valores["euro"] = data.euro.valor;
valores["utm"] = data.utm.valor;
valores["uf"] = data.uf.valor;
for (var index in valores){
document.write(valores[index]+"<br>");
}
});
答案 1 :(得分:2)
我认为您对Array的功能有误解。尝试使用对象而不是数组:
var valores = new Object();
fetch("https://mindicador.cl/api")
.then (data => data.json())
.then (data => {
valores["dolar"] = data.dolar.valor;
valores["euro"] = data.euro.valor;
valores["utm"] = data.utm.valor;
valores["uf"] = data.uf.valor;
for (var key in Object.keys(valores)){
document.write(valores[key]+"<br>");
}
});
如果您需要更多说明,请告诉我。我很乐于阐述。
编辑:值得注意的是,正如其他人指出的那样,您也不遵循数据的回调。