2016-04-26 13 views
0

私は、formIndex ofstring.indexOf(searchValue [、fromIndex])の使用法は何ですか?indexOf fromIndex関数?

for (var sA in secondOnArray) { 
    if (firstOnArray.indexOf(secondOnArray[sA]) > -1) { // what is the purpose of [sA] there? 
    result+= 0; 
    } 
} 

Mozilla String indexOf()w3Schools indexOf()例は非常に異なるようだ:私はこのようなコードを見つけましたか?

+1

"* [sA]の目的は何か*" [for..in'ループ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/ for ... in)キー/プロパティ名を反復します。この場合、 'sA'に割り当てられます。値には依然としてアクセスする必要があります。 –

+0

関連:[newbsのAPIドキュメントを読むには?](http://stackoverflow.com/questions/10925478/how-to-read-api-documentation-for-newbs) –

答えて

2

あなたはこの表記を誤解しています。

ofstring.indexOf(searchValue[, fromIndex]) 

これは、この関数の第2引数がオプションであることを意味します。提供されている場合は、indexOfにどこから検索を開始するかを指示します。それ以外の場合は、デフォルトで0になります。

は、2つの引数のフォームを呼び出すには、構文は次のとおりです。特に

ofstring.indexOf(value, index) 

ノートには、角括弧がないこと。角括弧は、ドキュメントの表記上の便宜のためのものです。

なぜ、角括弧がコード内にあるのかについては、下のコードのsAがインデックスであることに注意してください。したがっての値secondOnArrayのインデックスsAに取得するには、それをインデックスする必要があります。したがって、角括弧。これは、2つの引数形式のindexOfとは無関係です。

for (var sA in secondOnArray) { 
    if (firstOnArray.indexOf(secondOnArray[sA]) > -1) { 
    result += 0; 
    } 
} 

一つの代わりに、より明確な意思を指定

secondOnArray.forEach(function (ele) { 
    if (firstOnArray.indexOf(ele) > -1) { 
    result += 0; 
    } 
}); 

を書いて考えるかもしれません。

+0

私はあなたの答えに本当に感心しています。どのようにあなたはジャバスクリプトをマスターしたのだろうか? javascriptは非常に理解しにくい私は今、無料のコードキャンプには、任意のアドバイスですか? –

+0

@GlendonPhilippBaculioほとんどの言語と同様、練習は完璧です。それ以外にも、あなたがまだそれらを見ていないなら、[MDNチュートリアル](https://developer.mozilla.org/en-US/docs/Web/JavaScript)をお勧めします。 –

+0

あなたのお薦めに感謝します。私は現在無料のコードキャンプにいるので、それは非常に難しいスタートだと言わなければならない、私はそれをチェックするつもりだ、 –