技術ブログ

プログラミング、IT関連の記事中心

オブジェクト型のkeyに任意の文字が含まれる物のみを取得する方法 TypeScript

目次

機能説明

以下のようなオブジェクトから

const hoge = {
  sample_0_value: 'サンプルだよ',
  sample_1_value: 'サンプルだよ1',
  test_0_value: 'テストだよ'
};

以下のようなオブジェクトを取得したい
※keyに「sample」が含まれている物のみをオブジェクトで取得したい

const hoge = {
  sample_0_value: 'サンプルだよ',
  sample_1_value: 'サンプルだよ1',
};

実装方法

以下のように実装することで、getKeyFilterObjectの引数に渡すキーワードが含まれているkeyのみ取得できます。

const hoge = {
  sample_0_value: 'サンプルだよ',
  sample_1_value: 'サンプルだよ1',
  test_0_value: 'テストだよ'
};

const getKeyFilterObject = (keyword: keyof typeof hoge) => {
  const filteredObj: Partial<typeof hoge> = {};

  Object.keys(hoge).forEach((key) => {
    if (key.includes(keyword)) {
      filteredObj[key as keyof typeof hoge] = hoge[key as keyof typeof hoge];
    }
  });

  return filteredObj;
};

console.log(getKeyFilterObject("sample"));