ホーム>source

初心者JSはこちら-

おそらく私のグーグル経験が不足しているために答えを見つけることができず、indexOfのMozillaページが答えていないようです

<前>ウィズウィズ

indexOfを使用するときにこれが異なる動作をする理由はありません。なぜあるケースでは正確な文字列の一致が必要で、他のケースでは必要ないのですか?

//this returns -1 because it can't find 'ca' within cat var randomArr = ['dog', 'cat', 'bird', 'cheetah']; console.log(randomArr.indexOf('ca')); //this returns 1 which is correct, but why? var randomArr = ['dog', 'cat', 'bird', 'cheetah']; for (var i = 0; i < randomArr.length; i++) { if (randomArr[i].indexOf('ca') !== -1) { console.log(i); } }
あなたの答え
  • 解決した方法 # 1

    最初のケースでは、 .indexOf を呼び出しています  にアレイ。これはのインデックスを返します完全に一致 渡されたパラメータ(見つからない場合は-1)

    しかし、あなたがするとき

    <前>ウィズウィズ

    randomArr[i].indexOf('ca') !== -1 の各アイテム  文字列なので、 randomArr  文字列です。 randomArr[i] を呼び出す   randomArr[i].indexOf を呼び出す 検索される文字列の部分文字列のインデックスを返します(見つからない場合は-1)。

    String.prototype.indexOf 以来   'cat'  部分文字列として、 'ca' のインデックス   c で  が返されます(これは0です)。

    メソッドの名前は同じですが、非常に異なります。

    cat

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ android - フラグメントのデタッチ時のEditText onFocusChangeListenerエラー