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

带布尔参数的jq反转数组函数未返回数组,返回true问题咨询

问题描述

想用jq实现一个数组反转函数reverseIfTrue,它接收一个布尔参数,指定是否反转输入数组。但调用后函数未返回(可能反转后的)数组,反而返回了true。

jq 过滤器(错误版本)

def reverseIfTrue($reverse):
  if $reverse then reverse else . end;
reverseIfTrue(true)

JSON 输入

["a","b"]

错误输出

true

问题原因

错误出在函数调用方式上:原过滤器直接写reverseIfTrue(true),没有将输入数组通过管道传递给函数,导致函数未处理目标数组,反而出现参数与输入的混淆,最终返回布尔值true。

解决方案

修改过滤器,将输入数组通过管道(|)传递给函数,同时正确传递布尔参数:

def reverseIfTrue($reverse):
  if $reverse then reverse else . end;
. | reverseIfTrue(true)

正确输出

["b","a"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:15:40