Javascript 创建的图像有时不起作用

Javascript 创建的图像有时不起作用,javascript,Javascript,我创建了一个图像,并用随机数给出了这个图像的文件位置。 我拍摄这些照片的高度和我保存在数组中的大小。在for循环中发生的错误。 这通常是可行的,但有时尺寸为零。 我的代码: let tests = []; let sizes = []; let deger; for (let index = 0; index < 40; index += 1) { let img = new Image(); let random = Math.floor(Math.rando

我创建了一个图像,并用随机数给出了这个图像的文件位置。 我拍摄这些照片的高度和我保存在数组中的大小。在for循环中发生的错误。 这通常是可行的,但有时尺寸为零。 我的代码:

let tests = [];
let sizes = [];
let deger;

for (let index = 0; index < 40; index += 1) {
    let img = new Image();
    
    let random = Math.floor(Math.random() * 3);
    if(random==0){
        deger = '/img/test-1.png';
        img.src = deger;
        sizes[index]=img.height;
        tests[index] = deger;

    }else if(random==1){
        deger = '/img/test-2.png';
        img.src = deger;
        sizes[index]=img.height;
        tests[index] = deger;
    }else{
        deger = '/img/test-3.png';
        img.src = deger;
        sizes[index]=img.height;
        tests[index] = deger;
    }

}
console.log(sizes);
let tests=[];
让大小=[];
让德格;
对于(让指数=0;指数<40;指数+=1){
设img=新图像();
让random=Math.floor(Math.random()*3);
如果(随机==0){
deger='/img/test-1.png';
img.src=deger;
尺寸[指数]=最小高度;
试验[指标]=脱气;
}else if(随机==1){
deger='/img/test-2.png';
img.src=deger;
尺寸[指数]=最小高度;
试验[指标]=脱气;
}否则{
deger='/img/test-3.png';
img.src=deger;
尺寸[指数]=最小高度;
试验[指标]=脱气;
}
}
控制台日志(大小);
像这样:

图像尚未加载,因此其高度不可用。相反,您可以在加载它们后使用将它们添加到数组中

也可以使用

let tests=[];
让大小=[];
让德格;
对于(让指数=0;指数<40;指数+=1){
设img=新图像();
让random=Math.floor(Math.random()*3);
如果(随机==0){
德格https://picsum.photos/200';
img.src=deger;
img.onload=函数(){
尺寸。推力(img.高度);
试验。推(除气);
控制台日志(大小);
}
}else if(随机==1){
德格https://picsum.photos/300';
img.src=deger;
img.onload=函数(){
尺寸。推力(img.高度);
试验。推(除气);
控制台日志(大小);
}
}否则{
德格https://picsum.photos/400';
img.src=deger;
img.onload=函数(){
尺寸。推力(img.高度);
试验。推(除气);
控制台日志(大小);
}
}
}