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

Go.JS调用findNodesByExample匹配数组内字段正则返回空问题

问题原因

你的代码存在两个核心问题:

  1. 箭头函数无返回值:你在some方法的回调中用花括号包裹了逻辑,但没有显式写return,导致每次判断都返回undefined,最终整个条件判定为不匹配。
  2. 多条件匹配逻辑错误:你将key和fields的匹配条件拆分为两个独立对象传入findNodesByExample,该方法多参数为或匹配逻辑,即满足任意一个参数的条件就会被返回。如果你需要同时满足两个条件,需要把它们写在同一个对象内。

修复代码

如果你需要或匹配(满足key匹配 或 fields内name匹配),修复some回调的返回逻辑即可:

let safe = input.value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
let regex = new RegExp(safe, "i");
myDiagram.findNodesByExample(
  { key: regex },
  { 
    fields: function(fieldsArr) { 
      return fieldsArr.some(a => regex.test(a.name)) 
    } 
  }
);

如果你需要且匹配(同时满足key匹配 和 fields内name匹配),把两个条件合并到同一个对象:

let safe = input.value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
let regex = new RegExp(safe, "i");
myDiagram.findNodesByExample({
  key: regex,
  fields: function(fieldsArr) { 
    return fieldsArr.some(a => regex.test(a.name)) 
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:45:02