所以假设我有一个看起来像这样的数组:
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”的天气的具体名称?
答案 0 :(得分:4)
您需要alert(weather[i])
代替alert(weather)
答案 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的位置;
阵列=天气;