メソッド 1: arr.indexOf (要素): 見つからない場合は、-1 を返します。
if(arr.indexOf(某元素) > -1){
//则包含该元素}
例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple"); // 2
//以上输出结果意味着 "Apple" 元素位于数组中下标为 2 的位置。
IndexOf() の完全な構文:
array.indexOf(item,start)
//参数: item:必须。查找的元素。 start:可选的整数参数。规定在字符串中开始检索的位置。 它的合法取值是 0 到 stringObject.length - 1。 如省略该参数,则将从字符串的首字符开始检索。
例:
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4); // 6
注: string.indexOf() は、文字列内で指定された文字列値が最初に出現する位置を返します。
- このメソッドは、文字列 stringObject を最初から最後まで取得して、部分文字列 searchvalue が含まれているかどうかを確認します。検索は、文字列の fromindex または文字列の先頭 (fromindex が指定されていない場合) から開始されます。searchvalue が見つかった場合は、searchvalue が最初に出現した位置が返されます。
- stringObject 内の文字位置は 0 から始まります。
- 文字列の最後の出現を検索するには、lastIndexOf() メソッドを使用します。
方法 2: arr.find()
配列インスタンスの find() は、基準を満たす最初の配列要素を検索するために使用されます。そのパラメータはコールバック関数であり、戻り値 true を持つ最初の要素が見つかるまで、すべての配列要素が順番にコールバック関数を通過し、その後その要素を返します。それ以外の場合は、未定義を返します。
find() メソッドは、配列内の要素ごとに関数の実行を 1 回呼び出します。
- 条件のテスト時に配列内の要素が true を返した場合、find() は条件を満たす要素を返し、それ以降の値は実行関数を呼び出しません。
- 適格な要素がない場合は unknown を返します
- 注: find() 関数は空の配列に対しては実行されません。
- 注: find() は配列の元の値を変更しません。
[1, 5, 10, 15].find(function(value, index, arr) {
return value > 9;
}) // 10
/**
*使用方法
*/
arr.find(function(value) {
if(value === 要查找的值) {
//则包含该元素
}
})
メソッド 3: array.findIndex()
array.findIndex() は array.find() と非常に似ており、条件を満たす最初の配列要素の位置を返します。すべての要素が条件を満たさない場合は -1 を返します。
findIndex() メソッドは、配列内の要素ごとに関数を 1 回呼び出します。
テスト条件が満たされたときに配列内の要素が true を返すと、findIndex() は条件を満たす要素のインデックス位置とその後の値を返します。関数は再び呼び出されません。条件を満たす要素がない場合は、-1 を返します。 注: 空の配列に対して findIndex() 関数は実行されません。
注: findIndex() は配列の元の値を変更しません。
[1,5,10,15].findIndex(function(value, index, arr) {
return value > 9;
}) // 2
説明:
メソッド 2 とメソッド 3、どちらのメソッドも NaN を見つけることができ、メソッド 1 IndexOf() の欠陥を補います。
[NaN].indexOf(NaN)
// -1
[NaN].findIndex(y => Object.is(NaN, y))
// 0
メソッド 4: for()
配列を走査し、判断した場合
var arr = [1, 5, 10, 15];
//传统for
for(let i=0; i<arr.length; i++) {
if(arr[i] === 查找值) {
//则包含该元素
}
}
// for...of
for(v of arr) {
if(v === 查找值) {
//则包含该元素
}
}
//forEach
arr.forEach(v=>{
if(v === 查找值) {
//则包含该元素
}
})