如何在 Scriban 中使用 array.filter?

How to use array.filter in Scriban?

我在 .scriban 文件中创建了一个模板,但它似乎不起作用。

这是我要过滤的数组片段:

{{~ somevar = SomeArray | array.filter sub(sv) | array.first ~}}

应该调用的自定义函数是:

{{func sub(sv)
   ret sv.Code == "99"
end}}

似乎调用了自定义函数,但我收到此错误:

Scriban.Syntax.ScriptRuntimeException: '<input>(2,12) : error : Cannot get the member sv.Code for a null object.'

我做错了什么?

我知道这真的很晚,但我也在寻找如何使用 array.filter 的示例。

您正在调用 sub(sv) 并且 return 将它的 return 值设为 array.filter。相反,您需要将 sub 的“地址”传递给 array.filter.

{{~ somevar = SomeArray | array.filter @sub | array.first ~}}

这应该有效。