我不能打印数组“valore”中的任何项。我不知道发生了什么。我是不是做了一个汉化错误?当我执行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>");
}发布于 2018-10-01 22:17:04
您的问题是time。您正在向请求信息并填充valores数组的服务器做出承诺。但问题是,您在执行for循环之后:
for (var index in valores){
document.write(valores[index]+"<br>");
}.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>");
}
});发布于 2018-10-01 22:16:36
我认为你对数组的作用有误解。尝试使用对象而不是数组:
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>");
}
});如果你需要更多的解释,请告诉我。我很乐意详细说明。
编辑:值得注意的是,正如其他人指出的那样,您也没有遵守数据的回调。
https://stackoverflow.com/questions/52593052
复制相似问题