非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

TypeScript:配列内を検索する方法

   

TypeScript(Javascript)で配列内の検索する方法についてです。

find:条件式を使った検索(要素を得る)

findメソッドは引数に関数式を耐えることができ、その条件を満たす最初の要素を返す。もし見つからなかった場合はundefinedを返す。残念ながら「最初の要素」のみで2つ目以上は引っ掛けることができない。

const array : number[] = [5, 19, 8, 13, 21];
const found1 = array.find(element => element > 10);
const found2 = array.find(element => element > 100);
console.log(found1);
console.log(found2);
//19
//undefined
 

 

findIndex:条件式を使った検索(要素番号を得る)

findIndexメソッドはfindと同じく引数に関数式を耐えることができ、その条件を満たす最初の要素番号を返す。もし見つからなかった場合は-1を返す。こちらも「最初の要素」のみで2つ目以上は引っ掛けることができない。

const array : number[] = [5, 19, 8, 13, 21];
const found1 = array.findIndex(element => element > 10);
const found2 = array.findIndex(element => element > 100);
console.log(found1);
console.log(found2);
//1
//-1
 

 

indexOf/lastIndexOf:同じ内容を持つ要素番号を得る

indexOfメソッドは引数と同じ内容を持つ最初の要素番号を返す。存在しない場合は -1 を返す。lastIndexOfメソッドは逆に後ろから検索して最初(要するに配列の最後)の要素番号を返す。

const fruits : string[] = ['apple', 'banana', 'kiwi', 'orange', 'banana', 'peach'];
console.log(fruits.indexOf('banana'));
console.log(fruits.indexOf('lime'));
console.log(fruits.lastIndexOf('banana'));
//1
//-1
//4
 

 

includes:特定の要素が配列に含まれているかどうか判定する

includesメソッドは特定の要素が配列に含まれているかどうかを判定する。含まれていればtrue、そうでなければfalseで返す。

const fruits : string[] = ['apple', 'banana', 'kiwi', 'orange', 'banana', 'peach'];
console.log(fruits.includes('kiwi'));
console.log(fruits.includes('lime'));
//true
//false
 

 

連想配列はfind一択

連想配列はfindのみ使いましょう。他のメソッドだとコンパイルエラーが出るので。

const member = [
  { name:'鈴木', age: 42 },
  { name:'佐藤', age: 23 },
  { name:'渡辺', age: 38 }
];
const result = member.find(element => element.age<30);
console.log(result);
const index = member.findIndex(element => element.age<30);
console.log(index);
//{ name: '佐藤', age: 23 }
//1
 

 

 

スポンサーリンク

 - TypeScript