【发布时间】:2019-02-21 09:46:36
【问题描述】:
只有两个简单的问题,
Q(1) 下面的代码有多个 if else 语句我想知道是否有一种方法可以使用数组或其他东西来简化它。
Q(2)有没有办法更快地更改bgImg.src,因为更改src需要更长的时间。
const bgImg = document.querySelector('#element-body img');
let icon = "";
if(weatherName.includes("rain")){
icon = "./images/rain.jpg";
}
else if(weatherName.includes("clouds")){
icon = "./images/clouds.jpg";
}
else if(weatherName.includes("snow")){
icon = "./images/snow.jpg";
}
else if(weatherName === "mist"){
icon = "./images/mist.jpg";
}
else if(weatherName === "clear sky"){
icon = "./images/clear-sky.jpg";
}
else if(weatherName === "smoke"){
icon = "./images/smoke.jpg";
}
else if(weatherName === "dust"){
icon = "./images/dust.jpg";
}
else if(weatherName === "drizzle"){
icon = "./images/rain.jpg";
}
else if(weatherName === "haze"){
icon = "./images/haze.jpg";
}
else if(weatherName === "fog"){
icon = "./images/foggy.jpg";
}
else if(weatherName === "thunderstorm"){
icon = "./images/thunderstorm.jpg";
}
else{
icon = "./images/pexels-photo-39811.jpg";
}
}
bgImg.src = icon;
}
【问题讨论】:
-
不要同时问两个不同的问题。并且写
I asked this question before but the answered code doesn't work with me而不提及它是哪个问题,这不是一个好主意,如果我不知道其他答案是什么,我为什么要花时间回答这个问题。 -
这似乎并不复杂。为什么你觉得它需要简化?它看起来很“简单”。是什么让您认为这段代码“效率低下”?几乎不使用 CPU 来计算这将需要一秒的时间。真的不清楚你为什么这么反对这段代码?
-
@Liam 问题不是执行速度,问题是重复代码。
-
@Liam 啊,我忽略了第二个问题...
-
@Liam 我问如何更快地加载 bgImg 的原因是,当 API 发出新请求时,图像加载速度不快,更改图像 src 需要 1 或 2 秒,我认为这是表现不佳,这就是我问的原因。
标签: javascript performance if-statement ecmascript-6 ecmascript-5