[英]javascript - finding strings in an array
在通常的“在数组中查找字符串”问题上稍作改动:
我目前知道如何使用for循环和if语句在数组中查找字符串。 但是我想做的是返回一个选项,如果遍历整个数组后找不到匹配的字符串。 明显的问题是,如果我在当前的if语句中包含else选项,则没有匹配项的每次迭代都会移至else。
所以基本上,我想扫描整个阵列。 我该怎么做呢? 谢谢(超级新手在这里:))。
var guestList = [
"MANDY",
"JEMMA",
"DAVE",
"BOB",
"SARAH",
"MIKE",
"SUZY"
];
var guestName = prompt("Hello, welcome to The Club. What is your name?").toUpperCase();
for (var i=0; i<guestList.length; i++){
if (guestName === guestList[i]){
alert("Hi " + guestName + " You are on the list! Enjoy The Club");
}
}
无需for循环
if(guestList.indexOf(guestName) === -1) return "xyz" else return "abc"
如果仍要打印来宾名称,则可以提供一个默认的来宾名称,然后在for循环中可以更改或不更改它:
var guestName = prompt("Hello, welcome to The Club. What is your name?").toUpperCase();
var member = "GUEST";
for (var i=0; i < guestList.length; i++) {
if (guestName === guestList[i]){
member = guestName;
break;
}
}
alert("Hi " + member);
或使用jQuery而没有for循环:
var member = "GUEST";
if ($.inArray(guestName, guestList) > -1) {
member = guestName;
}
alert("Hi " + member);
请参阅jquery inArray的文档:
试试这个代码:
var guestList = [ "MANDY", "JEMMA", "DAVE", "BOB", "SARAH", "MIKE", "SUZY" ]; var guestName = prompt("Hello, welcome to The Club. What is your name?").toUpperCase(); var greet = "xyz";//put the default text here for (var i = 0; i < guestList.length; i++) { if (guestName === guestList[i]) { greet = "Hi " + guestName + " You are on the list! Enjoy The Club"; break;//match found, stop loop } } alert(greet);//greetings here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.