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

DataWeave中keysOf与contains组合返回false的原因咨询

DataWeave中keysOf函数与contains方法组合返回false的原因

给定如下对象:

{
 "keyA":1,
 "keyB":2
}

执行DataWeave脚本 keysOf(payload) contains "keyA" 时,预期返回true但实际返回false。直接使用字符串数组["keyA","keyB"]调用contains能得到预期的true,但将keysOf的结果存入变量后再用contains仍无效。

失效原因

  • keysOf()函数返回的并不是普通的String类型数组,而是由Key类型元素组成的集合。虽然在输出时这些Key元素的显示形式和字符串完全一致,但它们的底层类型和String是不同的。
  • contains()方法会进行严格的类型匹配,当你用String类型的"keyA"去匹配Key类型的元素时,因为类型不匹配,所以返回false。
  • 直接使用["keyA","keyB"]调用contains有效,是因为这个数组里的元素本身就是String类型,和你用来匹配的"keyA"类型完全一致,所以能匹配成功。
  • 把keysOf的结果存入变量后,变量中的元素依然是Key类型,所以用String类型的参数调用contains还是会因为类型不匹配返回false。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:12:13