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

jq 1.6使用unique_by按字段对子数组去重无效问题咨询

问题原因

你的写法错误在于作用对象不匹配:你把unique_by用在了顶层的整个对象数组上,而不是每个对象内部的bound_to子数组上,自然无法实现子数组去重的效果。

正确解决方案(兼容jq 1.6)

jq 'map(.bound_to |= unique_by(.where_to))'

效果说明

执行后会完整保留所有顶层记录,仅对每条记录的bound_to数组按where_to字段去重,重复条目仅保留第一条,完全符合需求:

  • 第二条记录的bound_to会从3条重复的where_to=3条目缩减为1条
  • 第三条记录的bound_to会从2条重复的where_to=10条目缩减为1条
  • 第一条记录无重复,内容保持不变

原命令错误详解

你原本的写法. |= unique_by(.bound_to[].where_to)是尝试给顶层数组去重,且去重依据用了.bound_to[]展开语法,会返回多个值,逻辑完全偏离子数组去重的目标,所以不会修改bound_to内部的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:27:00