ホームページ  >  記事  >  ウェブフロントエンド  >  ES6 でオブジェクト プロパティをキーでフィルタリングする方法は?

ES6 でオブジェクト プロパティをキーでフィルタリングする方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-09 17:02:02287ブラウズ

How to Filter Object Properties by Key in ES6?

ES6 でのキーによるオブジェクト プロパティのフィルタリング

JavaScript では、多くの場合、特定の基準に基づいてオブジェクト プロパティをフィルタリングする必要があります。 ES6 は、スプレッド演算子を通じてこれを達成するクリーンで効率的な方法を提供します。

問題:

次のようなオブジェクトが与えられたとします:

{
  item1: { key: 'sdfd', value: 'sdfd' },
  item2: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
}

目標次のような特定のキーを持つプロパティのみを含む新しいオブジェクトを作成することです。

{
  item1: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
}

解決策:

ES6 では、組み合わせを使用してオブジェクト プロパティをフィルタリングできます。 Object.keys() メソッドと Array.filter() メソッドを実行し、その後に Array.reduce() メソッドを実行して新しいオブジェクトを作成します。

提供されたコードは、このアプローチを示しています。

const raw = {
  item1: { key: 'sdfd', value: 'sdfd' },
  item2: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
};

const allowed = ['item1', 'item3'];

const filtered = Object.keys(raw)
  .filter(key => allowed.includes(key))
  .reduce((obj, key) => {
    obj[key] = raw[key];
    return obj;
  }, {});

console.log(filtered);

このコード:

  1. Object.keys(raw) はオブジェクト キーを配列に抽出します。
  2. Array.filter(key => allowed.includes(key))
  3. Array.reduce((obj, key) => { /* ... */ }, {}) は、フィルターされたキーを新しいオブジェクトにリデュースし、コピーします。元のオブジェクトの対応するプロパティ値。

以上がES6 でオブジェクト プロパティをキーでフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。