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
スポンサーリンク