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

如何对包含嵌套数组字段的JavaScript对象实现全字段搜索过滤

解决方案

你原来的代码没有处理数组类型的字段,writer数组的typeof返回值为object,会被原有逻辑直接跳过,修改后的过滤代码如下:

const filtered = search.filter((entry) => 
  Object.values(entry).some((val) => {
    // 匹配字符串类型字段(title、reference)
    if (typeof val === 'string') {
      return val.includes(searchTerm.toLowerCase());
    }
    // 匹配数组类型字段(writer)
    if (Array.isArray(val)) {
      return val.some(writerItem => 
        typeof writerItem === 'string' && writerItem.toLowerCase().includes(searchTerm.toLowerCase())
      );
    }
    // 其他类型字段默认不匹配
    return false;
  })
);

逻辑说明

  • 新增数组类型判断分支,用Array.isArray()识别writer这类数组字段
  • 数组字段内部通过some遍历元素,只要存在任意一个元素匹配搜索词就判定为符合条件
  • 统一对搜索词和匹配内容做小写转换,避免大小写差异导致匹配失败,如果你已经提前把searchTerm转成小写,可以去掉对应转换逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:36:06