簡體   English   中英

有人可以解釋 Javascript 中的.indexOf() 的邏輯嗎?

[英]Can somebody explain the logic of .indexOf() in Javascript?

function vowelsAndConsonants(s) {
    var vowels = ['a','e','i','o','u'];

    for(let i =0; i<s.length; i++){
        if(vowels.indexOf(s[i]) > -1 ){
            console.log(s[i]);
        }
    }

    for(let j = 0; j<s.length; j++){
      if(vowels.indexOf(s[j]) < 0){
          console.log(s[j]);
      }
    }
}

上面的代碼打印出輸入的元音和輔音。

我很難理解.indexOf()在這種情況下的具體工作原理。

我知道.indexOf()搜索數組並返回您要查找的元素的 position,但為什么以下條件if(vowels.indexOf(s[i]) > -1)只返回元音?

  • 據我了解,如果.indexOf()返回 -1,則表示未找到匹配項。 在這種情況下, if(vowels.indexOf(s[i]) > -1)是否意味着如果找到匹配項,我們應該執行代碼,因為它大於 -1?
  • 同樣,在這種情況下if(vowels.indexOf(s[j]) < 0)將意味着如果找不到匹配項,則執行 if 語句中的任何內容。

有人可以解釋一下邏輯並舉一個簡單的例子嗎? 我想我明白了邏輯,但同時我認為我沒有。

indexOf function 在元音數組中搜索。

如果它找到一個值,它將返回它的索引,因此結果將大於 -1。

如果它沒有找到它,結果將是-1。

但最好使用
if(vowels.indexOf(s[j]) === -1)而不是
if(vowels.indexOf(s[j]) < 0)

除非您實際上還需要知道 indexOf 結果才能對其進行處理,否則在現代 JS 中,最好使用.includes()而不是針對 -1 或 0 進行測試。

.includes()更易讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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