Javascript 在数组中查找特定字符

Javascript 在数组中查找特定字符,javascript,arrays,indexof,Javascript,Arrays,Indexof,假设我有一个数组,如下所示: weather = ["sun", "clouds", "rain", "hail", "snow"] 我想找到并显示所有包含字母“s”的字符串。这是我认为我应该做的 for(var i = 0; i < weather.length; i++) { if(weather[i].indexOf('s') != -1) { alert(weather); } } for(变量i=0;i

假设我有一个数组,如下所示:

weather = ["sun", "clouds", "rain", "hail", "snow"]
我想找到并显示所有包含字母“s”的字符串。这是我认为我应该做的

for(var i = 0; i < weather.length; i++)
{
    if(weather[i].indexOf('s') != -1)
    {
        alert(weather);
    }
}
for(变量i=0;i
但这只是显示所有天气字符串的次数与其中包含字母“s”的字符串的次数相同。(它只会发出警报:“太阳、云、雨、冰雹、雪”3次)


我如何让它只提醒包含字母“s”的特定天气名称。我想我只是错过了一个小细节

for(var i = 0; i < weather.length; i++)
{
    if(weather[i].indexOf('s') != -1)
    {
        alert(weather[i]);
    }
}
for(变量i=0;i
哦。我想我只是错过了一个小细节

for(var i = 0; i < weather.length; i++)
{
    if(weather[i].indexOf('s') != -1)
    {
        alert(weather[i]);
    }
}
for(变量i=0;i
您需要执行
警报(天气[i])
而不是
警报(天气)

选中您需要执行
警报(天气[i])
而不是
警报(天气)


检查作为没有变量或回路的简单现代解决方案:

alert(
  ["sun", "clouds", "rain", "hail", "snow"].filter(/./.test, /i/)
)

作为简单的现代解决方案,无需变量或循环:

alert(
  ["sun", "clouds", "rain", "hail", "snow"].filter(/./.test, /i/)
)

非常简单

 weather = ["sun", "clouds", "rain", "hail", "snow"];

      weather.forEach(function(arrayItem,arrayIndex,array){
              if(array[arrayIndex].match('s')){
               alert(array[arrayIndex]);
              }
      })
说明:

forEach()方法为数组中的每个元素调用一个函数。
排列项如“太阳”、“云”等
arrayIndex=arrayItem的位置

数组=天气

非常简单

 weather = ["sun", "clouds", "rain", "hail", "snow"];

      weather.forEach(function(arrayItem,arrayIndex,array){
              if(array[arrayIndex].match('s')){
               alert(array[arrayIndex]);
              }
      })
说明:

forEach()方法为数组中的每个元素调用一个函数。
排列项如“太阳”、“云”等
arrayIndex=arrayItem的位置

数组=天气

你能详细说明一下你的答案吗?向可能无法立即理解您在这里所做工作的用户解释此代码背后的想法。您能否详细说明一下您的答案?向可能无法立即理解您在这里所做工作的用户解释此代码背后的想法。