簡體   English   中英

javascript-在數組中查找字符串

[英]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的文檔:

http://api.jquery.com/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM