如何使用javascript在不使用正则表达式的情况下搜索数组中的字符串

时间:2014-08-29 14:11:14

标签: javascript

我是Javascript的新手 请帮我解决我的问题

function myFunction() {
var fr = ["banana", "orange", "apple", "mango"];
var n = fr.length;
var s = "a";
for(i=0;i<n;i++){
  if(fr[i].indexOf(s) != -1){
     console.log(fr[i]);          
  }
 }        
}

并且输出即将到来

banana
orange
apple
mango

但我想要的是它应该只打印以给定字母/单词

开头的单词
i.e., : apple 

4 个答案:

答案 0 :(得分:2)

当您检查index!=-1时,基本上您正在检查a是否存在于字符串中的任何位置。

如果您想检查该字符串是否以a开头,则应检查a是否为0th索引。

如果条件

,请检查此项
if(fr[i].indexOf(s) === 0)

这将给出预期的输出。

答案 1 :(得分:0)

所有这些字符串显示的原因是因为所有这些字符串都包含字符“a”。如果你只想显示开始字符'a'的字符串Mritunjay的解决方案是要走的路

答案 2 :(得分:0)

您可以使用子字符串。这个例子将为您提供字符串中的第一个字母。

 if(fr[i].indexOf(s) != -1){
     if(fr[i].substring(1, 0) === "b")
     {
         console.log("b found");
     }
 }

答案 3 :(得分:0)

(对于记录)/^a/i上数组的不区分大小写过滤(请参阅MDN

["banana", "orange", "apple", "mango"]
  .filter( function (v) { return v[0].toLowerCase() === 'a'; } );