我不能把JSON数据放在一个数组中

n21*_*21b 0 html javascript arrays json multidimensional-array

我无法打印数组"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>");
}
Run Code Online (Sandbox Code Playgroud)

小智 5

你的问题是时间.您正在向服务器发出请求信息和填充valores数组的承诺.但问题是你正在执行你的for循环:

for (var index in valores){
    document.write(valores[index]+"<br>");
}
Run Code Online (Sandbox Code Playgroud)

你需要处理你的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>");
    }
});
Run Code Online (Sandbox Code Playgroud)