亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在inclus()中使用“OR”運算符來試驗字符串中是否存在任何子字符串?

在inclus()中使用“OR”運算符來試驗字符串中是否存在任何子字符串?

慕虎7371278 2022-08-18 09:56:32
我注意到,當嘗試在這樣的函數中使用OR運算符時includes()x.includes("dogs"||"cats"||"birds"||"fish"||"frogs")它只會試用包含的第一個字符串,而不會進一步嘗試。我懷疑我在這里錯過了一些明顯的東西,或者不是用于這種情況的正確功能。includes()目標是試驗多個字符串,以確定它們是否是 x 的子字符串。因為我嘗試使用 or 運算符,所以我的意圖是不要為每個試驗字符串接收一個布爾值數組,而是如果有任何值為 true,則需要一個 true 的布爾值,否則需要 false。=
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

運算符不是可分配的。函數參數只是作為表達式計算,因此您的調用等效于:||

var temp = "dogs"||"cats"||"birds"||"fish"||"frogs";
x.includes(temp)

一系列操作的值是該系列中的第一個真值。由于所有非空字符串都是真實的,因此這等效于:||

var temp = "dogs";
x.includes(temp)

您需要在調用每個字符串的結果上使用:||includes

x.includes("dogs") || x.includes("cats") || x.includes("birds") ...

您可以使用數組方法簡化此操作:some()

["dogs","cats","birds","fish","frogs"].some(species => x.includes(species))


查看完整回答
反對 回復 2022-08-18
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

includes只查找一個字符串。您可以使用 .matchAll() 函數,該函數返回所有匹配結果的迭代器


const regex = /dogs|cats|birds|fish|frogs/g;

const str = 'the dogs, cats, fish and frogs all watched birds flying above them';

    

const exists = [...str.matchAll(regex)].length > 0;


console.log(exists);


查看完整回答
反對 回復 2022-08-18
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

對于這種情況,使用正則表達式和所需的布爾結果,RegExp#test派上用場。


此方法不返回迭代器,并且不需要數組即可獲取迭代器的長度。


const

    regex = /dogs|cats|birds|fish|frogs/g,

    str = 'the dogs, cats, fish and frogs all watched birds flying above them',

    exists = regex.test(str);


console.log(exists);


查看完整回答
反對 回復 2022-08-18
  • 3 回答
  • 0 關注
  • 98 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號