Javascript 循环数组匹配变量并分配要执行的条件

Javascript 循环数组匹配变量并分配要执行的条件,javascript,jquery,arrays,loops,Javascript,Jquery,Arrays,Loops,目前我正在开发一个能够实时显示天气的web应用程序,但我坚持我的一个想法。因此,我使用免费的预测API,并将对象值作为图标(图标表示下雨、下雪等情况下的不同时间)。我已经创建了一个数组,其中包含了关于该对象值的所有可能选项:“icon”,根据该预测API的文档,我已经准备好了Img文件夹中的所有图像。因此,我的想法是使用天气条件的所有可能选项循环此数组,然后如果与我的图标变量匹配(该变量根据我的API一直在变化),我希望能够为当前条件指定适当的图像:Rain-assign Rain.png或如果

目前我正在开发一个能够实时显示天气的web应用程序,但我坚持我的一个想法。因此,我使用免费的预测API,并将对象值作为图标(图标表示下雨、下雪等情况下的不同时间)。我已经创建了一个数组,其中包含了关于该对象值的所有可能选项:“icon”,根据该预测API的文档,我已经准备好了Img文件夹中的所有图像。因此,我的想法是使用天气条件的所有可能选项循环此数组,然后如果与我的图标变量匹配(该变量根据我的API一直在变化),我希望能够为当前条件指定适当的图像:Rain-assign Rain.png或如果正在下雪-assign Snow.png等等

这是我到目前为止的代码,但我在匹配数组和这个图标变量输出时遇到了问题。我还制作了一个数组,其中包含了我想要分配的所有图像,如果有匹配的话

var weatherConditions = [
            'Clear',
            'Possible Light Precipitation',
            'Light Precipitation',
            'Precipitation',
            'Drizzle',
            'Possible Drizzle',
            'Possible Light Rain',
            'Light Rain',
            'Rain',
            'Heavy Rain',
            'Possible Light Sleet',
            'Light Sleet',
            'Sleet',
            'Heavy Sleet',
            'Possible Flurries',
            'Flurries',
            'Possible Light Snow',
            'Light Snow',
            'Snow',
            'Heavy Snow',
            'Windy',
            'Dangerously Windy',
            'Foggy',
            'Mostly Cloudy',
            'Overcast',
            'Dry and Breezy',
            'Drizzle and Dangerously Windy'
        ]; 
    var arrayLength = weatherConditions.length;
    for (var i = 0; i < arrayLength; i+=1){
        if ( weatherConditions[i].indexOf(dayOneIconTokyo) ){
            console.log('working');
        } else{
            console.log('not in the array');
        }
    }   
var天气条件=[
“清楚”,
“可能的光降水”,
"轻微降水",,
"降水",,
"毛毛雨",,
“可能下毛毛雨”,
“可能有小雨”,
"小雨",,
“雨”,
"大雨",,
“可能有小雨夹雪”,
“轻雨夹雪”,
“雨夹雪”,
“强冰雹”,
“可能的阵雨”,
“阵雨”,
“可能有小雪”,
“小雪”,
“雪”,
“大雪”,
“风大”,
“风大得危险”,
“有雾”,
“多云”,
“阴天”,
“干燥且微风习习”,
“毛毛雨和危险的风”
]; 
var arrayLength=天气条件。长度;
对于(变量i=0;i
无需循环:

if (~weatherConditions.indexOf(dayOneIconTokyo)) { // returns true if dayOneIconTokyo
                                                   // is in weatherConditions
    console.log('working');
} else{
    console.log('not in the array');
}
无需循环:

if (~weatherConditions.indexOf(dayOneIconTokyo)) { // returns true if dayOneIconTokyo
                                                   // is in weatherConditions
    console.log('working');
} else{
    console.log('not in the array');
}

假设dayOneIconTokyo是一个数组

for (var i = 0; i < dayOneIconTokyo.length; i++){
    if ( weatherConditions.indexOf(dayOneIconTokyo[i]) ){
        console.log('working');
    } else{
        console.log('not in the array');
    }
}
for(var i=0;i
假设dayOneIconTokyo是一个数组

for (var i = 0; i < dayOneIconTokyo.length; i++){
    if ( weatherConditions.indexOf(dayOneIconTokyo[i]) ){
        console.log('working');
    } else{
        console.log('not in the array');
    }
}
for(var i=0;i
dayOneIconTokyo的内容是什么?您是否考虑过创建映射对象<代码>{“name”:“key1”,“src”:“1.png”}
dayOneIconTokyo是我从API中获取的对象值,该API说明了当前的天气状况(下雨、下雪、多云等)对于特定城市,如果
dayOneIconTokyo
Snow
,应该返回什么?我想返回当前条件下的图像-Snowing->return Snow.png,以及其他条件下相同的return rain-rain.png等等
dayOneIconTokyo
的内容是什么?您考虑过创建映射对象吗<代码>{“name”:“key1”,“src”:“1.png”}dayOneIconTokyo是我从API中获取的对象值,该API说明了当前的天气状况(下雨、下雪、多云等)对于特定的城市,如果dayOneIconTokyo是
Snow
,应该返回什么?我想返回当前条件下的图像-Snowing->return Snow.png,以及其他条件下相同的return rain-rain.png等等。尼娜,我可能误解了,但直接使用了
array.indexOf(value)
不会更好吗?只是一个小查询,如果OP想要进行部分搜索,那么什么是首选的/更好的:
数组。一些
数组。过滤器
?@Rajesh,这取决于想要的结果,如果只是查找,那么
数组#一些
会因为短路而变短。如果要返回一个集合,那么比
Array#filter
更好的选择。尼娜,我可能误解了,但直接使用了
Array。indexOf(value)
不会更好吗?只是一个小查询,如果OP想进行部分搜索,那么首选/更好的方法是:
Array.some
Array.filter
?@Rajesh,这取决于想要的结果,如果只查找,那么
数组#一些
会因为短路而变短。如果应该返回一个集合,那么
Array#filter
是一个更好的选择。