You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liquid使用where过滤器筛选对象数组结果不符合预期如何解决

问题根因

你对where过滤器的单参数用法存在误解:

  • 仅传入属性名单个参数时,Liquid的where过滤器只会过滤掉指定属性为nil的元素,不会自动判断属性的布尔值是否为真。
  • 你的测试数据里apple的good字段值是false,false不属于nil,因此不会被过滤,最终两个水果条目都被返回了。
修复方案

给where过滤器传入第二个匹配参数,明确指定要匹配的值为true,修改模板代码如下:

template = '
{% assign good_fruits = fruits | where: "good", true %}
{{ good_fruits }}'

修改后重新运行,就只会返回good属性严格等于true的orange条目,和你的预期输出一致。

补充:如果需要筛选布尔值为假的元素,给第二个参数传false即可;单参数调用where仅适合用来判断字段是否存在,不能直接用来做布尔真值筛选。

内容的提问来源于stack exchange,提问作者jozo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 03:18:16