indexOf()メソッドとlastIndexOf()メソッドには、新しいincludes()メソッドもあります.


indexOf()とlastIndexOf()メソッドの操作
両方のメソッドは、検索するアイテムと検索する開始位置のインデックスの2つのパラメータを受信します.
indexOf()は配列の先頭から後ろに検索されます
LastIndexOf()は配列の末尾から前方に検索されます
最初のパラメータ:
配列内に配置する要素.
2番目のパラメータ:
検索を開始するインデックス.インデックスが配列の長さ以上の場合は、-1が返されます.これは、配列が検索されないことを意味します.指定したインデックス値が負の場合は、配列の末尾のオフセット量として使用されます.注:指定したインデックスが負の場合、配列は前後から検索されます.計算されたインデックスが0より小さい場合、配列全体が検索されます.デフォルト:0(配列全体を検索)です.
両方のメソッドは、検索するアイテムの配列内のインデックスを返します.

ps:indexOf()は、Arrayの要素と厳密に等しい(==三重等しい演算子で使用される方法と同じ)を使用して比較されます。


まずindexOf()を紹介しますが、これは比較的多いです。


注意:両方の方法は大文字と小文字に敏感です.
注意:取得する文字列値が表示されない場合は、-1を返します.
Stringタイプの使用:
var b = "yellow";
b.indexOf("y",1)    //0
//          
b.indexOf("y",0)    //0
b.indexOf("o",10)    //-1

見つかったら配列のインデックスを返し、見つからなかったら-1を返します.あまり見えません.次に見てみましょう.
var c = "2016";
c.indexOf(6)    //3
c.indexOf("6")    //3

ここでindexOfは簡単なタイプ変換を行い、数字を文字列'2'に変換して実行します.
次にnumberタイプを見てみましょう
var d = 2018;
d.indexOf(8)    //VM150:1 Uncaught TypeError: d.indexOf is not a function

以前は文字列は暗黙的に変換されましたが、namerタイプは暗黙的に変換されませんでした.
次は配列です最も多く使われているタイプです
var a = ["a","b","c","d","a","b","c","d"]

//["a", "b", "c", "d", "a", "b", "c", "d"]

a.indexOf("a",3)    //4           "a"

a.indexOf("a",5)    //-1         -1


var a = ["abcd","bacd","cabd","dabc"]

a.indexOf("a",2)    //-1                      indexOf()  

 

LastIndexOf()は末尾から先へ検索します


戻り値は0からの下付きで、検索されなくても-1を返します.
一般的にindexOfは文字列を検索するために使用されます.
 

Es 6新規includes()メソッド

includes()メソッドは、配列に指定された値が含まれているかどうかを判断するために使用され、場合によってはtrueが含まれている場合、falseが返されます.
let str = ["apple", "plum", "peach" ,"banana" ,"pitaya" ,"fruits"];
console.log(str.includes("banana"));    // true;
console.log(str.includes("ananas"))    // false

2つのパラメータを受け入れます.1つ目のパラメータは検索する要素の値で、2つ目のパラメータはインデックスから検索を開始します.負数の場合、arrayに従います.length+indexのインデックスは検索を開始し、デフォルトは0です.
戻り値
booleanタイプ(trueまたはfalse)
[1, 2, 3].includes(2);     // true
[1, 2, 3].includes(4);     // false
[1, 2, 3].includes(3, 3);  // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true

2番目の長さが自分の数値の長さより大きい場合
var arr = ['a', 'b', 'c'];

arr.includes('c', 3);   //false
arr.includes('c', 100); // false

計算されたインデックスが0未満の場合
//      3
// array.length  -100
// index   3 + (-100) = -97

var arr = ['a', 'b', 'c'];

arr.includes('a', -100); // true
arr.includes('b', -100); // true
arr.includes('c', -100); // true

これくらいですが、indexOf()メソッドの戻り値は、最初に現れたインデックス位置と-1です.一方includesはtrueとfalseを返し,indexOf()メソッドよりも簡便である.
PS:includesメソッドは文字列の中にこの文字があるかどうかしか見つからないことに注意してください.もしこの文字の前に後者の後ろに文字があれば、同じように見つかります.例を見てください.
let str = "apple plum peach2  banana2 pitayafruits";
console.log(str.includes("banana"));    // true;
console.log(str.includes("ananas"))    // false