在数组中查找特定字符

时间:2013-05-03 20:26:54

标签: 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);
    }
}

但是,这只会显示所有天气字符串,因为字母中包含字母“s”。 (它只会提醒:“太阳,云,雨,冰雹,雪”3次)

如何让它只提醒包含字母“s”的天气的具体名称?

4 个答案:

答案 0 :(得分:4)

您需要alert(weather[i])代替alert(weather)

检查this fiddle

答案 1 :(得分:2)

是没有变量或循环的简单现代解决方案:

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

答案 2 :(得分:1)

喔。我想我只是错过了一个小细节。

for(var i = 0; i < weather.length; i++)
{
    if(weather[i].indexOf('s') != -1)
    {
        alert(weather[i]);
    }
}

答案 3 :(得分:0)

非常简单

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

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

<强>解释:

forEach()方法为数组中的每个元素调用一个函数 arraytItem like ='sun','clouds'等。
arrayIndex = arrayItem的位置;
阵列=天气;