我是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
答案 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'; } );