JavaScript - 配列内の特定の要素を探す、Indexを探す

配列内に特定の要素があるかどうかを見つけたり、特定の要素のインデックスを探したいときに使用できる方法を紹介します。

1. find() で配列の特定の要素を探す

find() は引数として関数を渡し、関数から true が返される要素を返します。見つからない場合は、 undefined が返されます。

let arr = ['a', 'b', 'c', 'd', 'e'];

let found = arr.find(element => element == 'c');
console.log(found);

found = arr.find(e => e == 'f');
console.log(found);

Output:

c
undefined

以下のように、特定の要素が配列にあるかどうかを確認できます。

let arr = ['a', 'b', 'c', 'd', 'e'];

if (arr.find(e => e == 'f') == undefined) {
  console.log("Not found");
} else {
  console.log("Found");
}
// output: Not found

2. findIndex() で特定の要素のインデックスを探す

findIndex() は、配列内の特定の要素を探し、そのIndexを返します。特定の要素がない場合は-1を返します。したがって、-1を返すと、特定の要素がないことを確認できます。

let arr = ['a', 'b', 'c', 'd', 'c'];

let found = arr.findIndex(e => e == 'c');
console.log(found);

found = arr.findIndex(e => e == 'f');
console.log(found);

Output:

2
-1

以下のように、特定の要素が配列にあるかどうかを確認できます。

let arr = ['a', 'b', 'c', 'd', 'e'];

if (arr.findIndex(e => e == 'f') == -1) {
  console.log("Not found");
} else {
  console.log("Found");
}
// output: Not found

3. filter() で特定の要素をすべて探す

find() は、配列の要素を巡回しながら条件を満たす要素を探して返します。配列にその要素が重複しているかどうかはわかりません。

filter() を使用すると、条件に満足する要素をすべて見つけることができ、重複要素があるかどうかわかります。 特定の要素がない場合は、空の配列が返されます。

let arr = ['a', 'b', 'c', 'd', 'c'];

let found = arr.filter(e => e == 'c');
console.log(found);

found = arr.filter(e => e == 'f');
console.log(found);

Output:

[ 'c', 'c' ]
[]
codechachaCopyright ©2019 codechacha