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

JS按connectors过滤base列表仅匹配首项的问题排查与修复

问题原因

原代码筛选逻辑仅读取connectors数组下标为0的首个元素做匹配,因此只有目标值出现在connectors列表第一位时才会被命中,非首位的匹配值会被直接忽略。
此前尝试的两种修改写法失效原因如下:

  • base.connectors是数组类型,直接和筛选的字符串值做匹配永远不会相等
  • 数组对象本身不存在standard属性,base.connectors.standard的取值为undefined,无法命中任何筛选值
修复方案

使用数组的some()方法遍历每个base下的全量connectors列表,只要列表中任意一项的standard属性在筛选条件内,就将该base纳入筛选结果。修复后完整代码如下:

calcBaseList: function() {
  let tmp = [];
  if (this.filterConnector.length > 0) {
    this.listBase.forEach((base) => {
      // 校验当前base下所有connector,存在任意一项匹配筛选条件即保留
      const hasMatchedConnector = base.connectors.some(connector => 
        this.filterConnector.includes(connector.standard)
      )
      if (hasMatchedConnector) {
        tmp.push(base);
      }
    });
  } else {
    tmp = this.listBase;
  }
  // 注:原代码中filtredBase为拼写错误,此处修正为标准拼写filteredBase,若业务中已引用原变量名可自行替换回filtredBase
  this.filteredBase = tmp;
},
逻辑说明
  • some()方法遍历connectors数组时,遇到第一个满足判断条件的项就会终止遍历并返回true,相比全量遍历性能更优
  • 完全兼容connectors列表长度为1或多个的场景,不会漏匹配非首位的connector
  • 无筛选条件时返回全量列表的逻辑和原代码保持一致,不会影响原有正常功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:24:18