[英]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.