当サイトは、アフィリエイト広告を利用しています

【javascript】findとfindIndexとindexOfの違いと使い分け

作成日:2022月08月19日
更新日:2024年03月28日

JavaScript(TypeScript)の

  • find
  • findIndex
  • indexOf
    について違いと使い分け方をまとめる。
    ※毎回、混乱するので...

findメソッド

findメソッドは配列もしくはオブジェクト配列から対象の要素を検索して取得する時に使う。

find
type article = {
title: string;
tags: string[];
cotent: string;
};
// 記事一覧
const articleList: Array<article> = Array.of(
{ title: "記事1", tags: ["java"], cotent: "aaaaaaaaaa" },
{ title: "記事2", tags: ["react"], cotent: "bbb" },
{ title: "記事3", tags: ["emotion"], cotent: "cccc" },
{ title: "記事4", tags: ["javascript"], cotent: "ddddddddddddd" },
{ title: "記事5", tags: ["css"], cotent: "eeeeeeeeeee" },
{ title: "記事6", tags: ["gatsby"], cotent: "f" }
);
// find
// 条件に一致した最初のオブジェクトが返却される
const findResult: article | undefined = articleList.find(
(article) => article.title === "記事1"
);
console.log(findResult);
  • findでは条件に一致した最初の要素が返される
  • 一致する要素がない場合はundefinedが返される

findIndexメソッド

findIndexメソッドも配列もしくはオブジェクト配列から対象のindexを取得したい時に使う

findIndex
type article = {
title: string;
tags: string[];
cotent: string;
};
// 記事一覧
const articleList: Array<article> = Array.of(
{ title: "記事1", tags: ["java"], cotent: "aaaaaaaaaa" },
{ title: "記事2", tags: ["react"], cotent: "bbb" },
{ title: "記事3", tags: ["emotion"], cotent: "cccc" },
{ title: "記事4", tags: ["javascript"], cotent: "ddddddddddddd" },
{ title: "記事5", tags: ["css"], cotent: "eeeeeeeeeee" },
{ title: "記事6", tags: ["gatsby"], cotent: "f" }
);
// findIndex
// 条件に一致した最初のオブジェクトのindexが返却される
const findIndexResult: number = articleList.findIndex(
(article) => article.title === "記事4"
);
console.log(findIndexResult);
  • findIndexでも条件に一致した最初の要素のindexが返される
  • 一致する要素がない場合は-1が返される

indexOfメソッド

indexOfは配列から対象の要素のindexを取得したいときに使う。
※オブジェクト配列では使用できない

indexOf
// indexOf
// 配列の場合はindexOfで対象のindexを取得できる
// ※オブジェクト配列では使えない
const stringArray: Array<string> = ["aaa", "bbb", "ccc"];
const indexOfResult: number = stringArray.indexOf("bbb");
console.log(indexOfResult);
  • 条件に一致した最初の要素のindexが返される
  • 一致する要素がない場合は-1が返される

動作確認

下記で動作確認してみてください!

TypeScript find findIndex indexOf

まとめ

実際に調べて整理してみると違いと用途は全然違うことがわかった。
これでjavascriptでは混乱しなくて済みそうです

おまけ

実はjavaにもややこしい名前のfindFirstとfindAnyというメソッドがあったりします...
このおかげでfrontでjavascript、backendがjavaのシステム開発時などは毎回ググってました。
javaのfindFirstとfindAnyについては下記記事でまとめているのでよければ参照ください

参考

新着記事

タグ別一覧
top