where
指定したプロパティ値を持つオブジェクトだけを含む配列を作成します。既定では、真となる値を持ちます。
この例では、商品の一覧があり、キッチン用品を個別に表示したいとします。where
を使用すると、"type"
が "kitchen"
の商品のみを含む配列を作成できます。
入力
All products:
{% for product in products %}
- {{ product.title }}
{% endfor %}
{% assign kitchen_products = products | where: "type", "kitchen" %}
Kitchen products:
{% for product in kitchen_products %}
- {{ product.title }}
{% endfor %}
出力
All products:
- Vacuum
- Spatula
- Television
- Garlic press
Kitchen products:
- Spatula
- Garlic press
逆に、商品の一覧があり、購入可能な商品だけを表示したいとします。プロパティ名は指定しますが、ターゲット値は指定しない where
を使用して、真となる "available"
値を持つすべての商品を含めることができます。
入力
All products:
{% for product in products %}
- {{ product.title }}
{% endfor %}
{% assign available_products = products | where: "available" %}
Available products:
{% for product in available_products %}
- {{ product.title }}
{% endfor %}
出力
All products:
- Coffee mug
- Limited edition sneakers
- Boring sneakers
Available products:
- Coffee mug
- Boring sneakers
where
フィルターは、first
フィルターと組み合わせることで、配列内の 1 つのオブジェクトだけを見つけるためにも使用できます。たとえば、新しい秋の収穫でシャツを見せたいとします。
入力
{% assign new_shirt = products | where: "type", "shirt" | first %}
Featured product: {{ new_shirt.title }}
出力
Featured product: Hawaiian print sweater vest