index_by
{% assign products_by_sku = products | index_by: "sku" %}
{% comment %} O(1) direct access instead of O(n) search {% endcomment %}
{% assign product = products_by_sku["ABC123"] %}Syntax
{{ array | index_by: property }}
{{ array | index_by: "nested.property" }}Parameter
Description
Variants
{% assign users_by_email = users | index_by: "email" %}
{% assign user = users_by_email["[email protected]"] %}{% assign orders_by_status = orders | index_by_all: "status" %}
{% assign pending_orders = orders_by_status["pending"] %}
{% log "Pending orders: " | append: pending_orders.size %}Examples
Performance Comparison
Operation
Without index_by
With index_by
Notes
Last updated