web-dev-qa-db-ja.com

IndexOfが-1を返すのはなぜですか?

私はJavascriptを学んでいますが、以下のindexOfが-1を返す理由がわかりません。

var string = "The quick brown fox jumps over the lazy dog";

console.log (string.indexOf("good"));
20
Adnan Khan

-1は「一致するものが見つかりません」を意味します。

「false」ではなく-1を返す理由は、文字列の先頭にある針が位置0にあるためです。これは、Javascriptのfalseに相当します。したがって、-1を返すと、実際には一致しないことがわかります。

29
Interrobang

-1は、一致するものが見つからないことを意味します。 「良い」はその文にはありません。これは 文書化動作 です。

indexOf()メソッドは、指定された要素が配列内で見つかる最初のインデックスを返します。または-1存在しない場合。

10
mpen

配列は0ベースであるため、0を返すことは、最初の文字から開始して一致したことを意味します。 1、2番目の文字、というように続きます。これは、0以上が真のまたは「見つかった」応答になることを意味します。整数カテゴリにすべてを保持するために、-1は一致が見つからなかったことを示します。

8
Mauvis Ledford

一致するものが見つからない場合にindexOfが-1を返すもう1つの理由があります。以下のコードを検討してください:

if (~str.indexOf(pattern)){
  console.log('found')
}else{
  console.log('not found')
}

〜(-1)= 0であるため、indexOfが-1を返すという事実により、他の場合は〜を使用すると記述が容易になります。

3
VietNg

検索では、探しているものが見つからないため(「good」は文に含まれていません)、-1がデフォルトの戻り値です。

http://www.w3schools.com/jsref/jsref_indexof.asp

0
numegil