gpt4 book ai didi

javascript - 在 if/else 语句中处理多个 'elseif' 的更好方法是什么

转载 作者:行者123 更新时间:2023-11-28 13:01:28 26 4
gpt4 key购买 nike

我目前正在开发 PhoneGap 应用程序。我有一个相当大的 if/else 语句,它只是将字符串与 API 响应中的 JSON 进行比较。减少代码并提高效率的最佳方法是什么?请参阅下面的代码:

代码:

current = JSON.stringify( value.main ).replace(/['"]+/g, ''); 

// strings to compare to currerent weather conditions
var stringSnow = "Snow";
var stringRain = "Rain";
var stringFog = "Fog"
var stringMist = "Mist";
var stringClear = "Clear";
var stringClouds = "Clouds";
var stringHaze = "Haze";

// Update homescreen background
if (stringSnow === current)
{
// console.log("Its Snowing");
$('body').css('background-image', 'url(assets/weatherBG/wall_snow.jpg)');
}
else if (stringRain === current)
{
//console.log("its raining");
$('body').css('background-image', 'url(assets/weatherBG/wall_rain.jpg)');
}
else if (stringMist === current)
{
//console.log("its mist");
$('body').css('background-image', 'url(assets/weatherBG/wall_fog.jpg)');
}
else if (stringFog === current)
{
//console.log("its Foggy");
$('body').css('background-image', 'url(assets/weatherBG/wall_fog.jpg)');
}
else if (stringClear === current)
{
//console.log("its clear");
$('body').css('background-image', 'url(assets/weatherBG/wall_clear.jpg)');
}
else if (stringClouds === current)
{
//console.log("its Cloudy");
$('body').css('background-image', 'url(assets/weatherBG/wall_cloudy.jpg)');
}
else if (stringHaze === current)
{
//console.log("its hazy");
$('body').css('background-image', 'url(assets/weatherBG/wall_cloudy.jpg)')
}

最佳答案

我会使用查找表:

var backgrounds = {
Snow: "wall_snow.jpg",
Rain: "wall_rain.jpg",
// ...
};

然后

var url = backgrounds[current] || "default.jpg";
$('body').css('background-image', 'url(assets/weatherBG/' + url + ')');

在查找表不起作用的情况下,switch 语句有时是一个不错的选择。在 JavaScript 中,switch 与带有 === 比较的 if/else 完全相同,只是语法不同(case标签甚至可以是表达式)。

关于javascript - 在 if/else 语句中处理多个 'elseif' 的更好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50027848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com