カテゴリ実装例ブログ

配列内のディクショナリのプロパティを1行で展開する

作成者: 半田 惇志|Dec 8, 2021 3:00:00 PM

例えば下記のようなディクショナリがあり、

{%- set prices = [
  {
    text: "¥29,050~(1室2名様利用)",
    value: 29050,
  },
  {
    text: "¥19,040~(1室2名様利用)",
    value: 19040,
  }
] 

この最小値のtextを表示させたいという場合、正攻法でいけば次のように|sortの結果と|firstの結果を一度変数に退避させる形で2行書くことになります。

{%- set min = prices|sort(false, false, 'value')|first -%}
{{ min.text }}
これが面倒な場合は、次のように括弧でくくることで1行で書くことができます。
{{ (prices|sort(false, false, 'value')|first).text }}

便利ではありますが、ドキュメントに記載されている内容ではありませんので、ご利用は自己責任でどうぞ……。
(言語として一般的な挙動でもあるので、これが動かなくなることはそうそう無いと思いますが)