配列から特定の要素を検索する方法

javascriptの配列の要素を検索する方法について簡単にまとめました。

includes

指定した要素が配列に存在するか調べるメソッド(ES 2017)。
存在したらtrueを返す。

const animals = ['サル', 'キリン', 'ライオン', 'シカ'];
const result_1 = animals.includes( 'ライオン' );
const result_2 = animals.includes( 'ゾウ' );
 
console.log(result_1);
// ※実行結果
// true

console.log(result_2);
// ※実行結果
// false
includesの返り値

要素が見つかった場合 :true返す
要素が見つからない場合:false返す

indexOf

指定した要素が配列に存在するか(配列の先頭から)調べるメソッド。
存在したら調べた最初のインデックス番号を返す。

const animals = ['サル', 'キリン', 'ライオン', 'シカ'];
const result_1 = animals.indexOf( 'ライオン' );
const result_2 = animals.indexOf( 'ゾウ' );
 
console.log(result_1);
// ※実行結果
// 2

console.log(result_2);
// ※実行結果
// -1
indexOfの返り値

要素が見つかった場合 :最初のインデックス番号(数値)を返す
要素が見つからない場合:-1を返す

indexOfで複数合致した場合
もし見つけたい要素が配列内に複数あった場合は、最初に一致した値のインデックス番号を返します。

lastIndexOf

指定した要素が配列に存在するか(配列の末尾から)調べるメソッド。
存在したら調べた最初のインデックス番号を返す。

const animals = ['サル', 'キリン', 'ライオン', 'シカ'];
const result_1 = animals.lastIndexOf( 'ライオン' );
const result_2 = animals.lastIndexOf( 'ゾウ' );
 
console.log(result_1);
// ※実行結果
// 2

console.log(result_2);
// ※実行結果
// -1
lastIndexOfの返り値

要素が見つかった場合 :最初のインデックス番号(数値)を返す
要素が見つからない場合:-1を返す

lastIndexOfで複数合致した場合

indexOf同様、もし見つけたい要素が配列内に複数あった場合は、最初に一致した値のインデックス番号を返します。
末尾から検索するため、取得する番号は一番大きいインデックス番号となります。

find

条件に一致する要素があるか調べるメソッド(ES 2015)。
一致した最初の要素を返す。

const animals = ['サル', 'キリン', 'ライオン', 'シカ', 'ライオン'];
const result_1 = animals.some(l => l === 'ライオン');
const result_2 = animals.some(e => e === 'ゾウ');

console.log(result_1);
// ※実行結果
// "ライオン"

console.log(result_2);
// ※実行結果
// undefined
findの返り値

要素が見つかった場合 :一致した最初の要素を返す
要素が見つからない場合:undefinedを返す

filter

条件に一致する要素があるか調べるメソッド。
一致した全ての要素を配列で返す。

const animals = ['サル', 'キリン', 'ライオン', 'シカ', 'ライオン'];
const result_1 = animals.filter(l => l === 'ライオン');
const result_2 = animals.filter(e => e === 'ゾウ');

console.log(result_1);
// ※実行結果
// ["ライオン","ライオン"]

console.log(result_2);
// ※実行結果
// []
filterの返り値

要素が見つかった場合 :一致した全ての要素を配列で返す
要素が見つからない場合:空の配列を返す

some

条件に一致する要素があるか調べるメソッド(ES 2015)。
一致した要素があればtrueを返す。

const animals = ['サル', 'キリン', 'ライオン', 'シカ', 'ライオン'];
const result_1 = animals.some(l => l === 'ライオン');
const result_2 = animals.some(e => e === 'ゾウ');

console.log(result_1);
// ※実行結果
// true

console.log(result_2);
// ※実行結果
// false
someの返り値

要素が見つかった場合 :trueを返す
要素が見つからない場合:falseを返す