JavaScript配列におけるindexOf方法

2583 ワード

最近のプロジェクトでは小さな問題コードが発生しました.
最後に収穫があるので、基礎がしっかりしている子供用の靴は直接的に配列のタイプにジャンプして使うことができます.
indexOfといえば、みんなはよく知らないので、文字列がサブ文字列を包含するかどうかを判断する時によく使われます.
Stringタイプの使用
よく知っている文字列の使い方を復習して、例を挙げます.
let str = 'orange';

str.indexOf('o');  //0
str.indexOf('n');  //3
str.indexOf('c');  //-1
ここで0と3はそれぞれoとnの文字列に現れる位置です.開始下付きは0です.-1はマッチしていないことを表します.
なぜかと聞かれたことがあります.1はnullかundefinedではないです.ルールを作っている人に聞いてみてください.どうしようもない顔をしている
みんなはここを見て、ハイライトがないと思います.
let numStr = '2016';

numStr.indexOf('2');  //0
numStr.indexOf(2);  //0
ここで見た小さな点は、indexOfが簡単なタイプ変換を行い、数字を文字列'2'に変換してから実行することです.
Numberタイプの使用numberタイプはindexOf方法がありますか?隠蔽変換ができるからです.ありません.
let num = 2016;

num.indexOf(2);  //Uncaught TypeError: num.indexOf is not a function
numberタイプに対して、ぜひindexOf方法を使用したいですね?文字列に変換します.次の例を書きます.
//       
num = '2016';
num.indexOf(2);  //0

//       
num.toString().indexOf(2);  //0

//       
('' + num).indexOf(2);  //0
最初の書き方は簡単で直接的で、既知の短い数字に対しても不可能ではないです.しかし、num変数は異なるデータに対して変化する場合、どうすればいいですか?
第二の書き方が一番よく使われていますが、第三の書き方より少し長いです.はは、実はすべてできて、コードの潔癖症の人は第三種類が好きです.
Arayタイプの使用
みんな元気を出して、大ボスが来ました.
配列の方法はもう慣れていますが、配列を無視してindexOfという方法があります.
でたらめばかり言っていますが、何か問題があったら、注意点はどこにありますか?
let arr = ['orange', '2016', '2016'];

arr.indexOf('orange');  //0
arr.indexOf('o');  //-1

arr.indexOf('2016');  //1
arr.indexOf(2016);  //-1
ここでは例を細かく分解していないので、4つの用例は問題を説明するのに十分です.
  • arr.indexOf('orange')出力0は'orange'が配列の0番目の要素なので、一致して下付きに戻ります.
  • arr.indexOf('o')出力-1は、この方法が各要素に基づいてindexOfマッチングを再実行しないためである.
  • arr.indexOf('2016')出力1は、この方法が一致するまで最初の配列要素の下表を返すので、一致したすべての下付きの基準を返すのではなく、一致するまで最初の配列要素の下の表を返す.
  • arr.indexOf(2016)出力-1注意:ここでは暗黙的なタイプの変換はしない.
  • 穴が見つかった以上、根掘り葉掘り聞いてもいいです.MDN公式サイトに行ってみます.この話題に興味がある方は、直接アラy.prototype.indexOfにジャンプできます.
    知りたいだけの友達は以下にみんなの公式のDescriptionをあげます.
    indexOf()compres search Element to element s of the Aray using stict equality(the same method used by the==or triple-equals operator)
    一目瞭然です.ここで使うのは厳格イコールです.似たような判断をする時は、気をつけましょう.数字は文字列に変換されます.同じ文字列も数字に変換されません.
    締め括りをつける
    小さな知識点の蓄積は、突っ込んだ議論の話題としてではないので、indexOf()の第二のパラメータは説明されていません.第二のパラメータの役割は皆さんが知っていると信じています.知らないのはここのStering.prototype.indexOf()を見て、上の配列のリンクも見てください.
    文章はorangeの個人ブログから来ています.http://orangexc.xyz/