以下に、オブジェクトで.filter()メソッドを使用するいくつかの例を示します。
例1: 数値プロパティを持つオブジェクトのフィルタリング
const obj = {
a: 1,
b: 2,
c: 3,
d: 4,
};
const filteredObj = Object.entries(obj)
.filter(([key, value]) => typeof value === 'number')
.reduce((acc, [key, value]) => {
acc[key] = value;
return acc;
}, {});
console.log(filteredObj);
// 出力: { a: 1, b: 2, c: 3, d: 4 }
この例では、オブジェクト内の数値プロパティのみを抽出して新しいオブジェクトを作成しています。.filter()メソッドは、オブジェクトをエントリーの配列に変換し、その配列をフィルタリングしています。その後、.reduce()メソッドを使用して、フィルタリングされたエントリーから新しいオブジェクトを再構築しています。
例2: 条件を満たすオブジェクトのフィルタリング
const products = [
{ name: 'Apple', category: 'Fruit', price: 1.5 },
{ name: 'Banana', category: 'Fruit', price: 0.5 },
{ name: 'Carrot', category: 'Vegetable', price: 0.8 },
{ name: 'Orange', category: 'Fruit', price: 1.2 },
];
const filteredProducts = products.filter(product => product.price < 1.0);
console.log(filteredProducts);
// 出力: [{ name: 'Banana', category: 'Fruit', price: 0.5 }, { name: 'Carrot', category: 'Vegetable', price: 0.8 }]
この例では、商品の配列から価格が1.0未満の商品のみを抽出しています。.filter()メソッドは、与えられた条件を満たす要素のみを残し、それ以外の要素を取り除きます。
これらは、JavaScriptのオブジェクトで.filter()メソッドを使用するいくつかの例です。他にもさまざまな使い方がありますので、必要に応じてドキュメントなどを参照してみてください。