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

如何基于参数中的单个或多个sector_title值过滤数组

数组按单个/多个sector_title值过滤的实现方案

没问题,咱们来解决这个数组过滤的问题——不管你的params是单个sector_title值还是一组值,都能轻松搞定。下面是一套灵活的实现方案,两种情况都能覆盖:

核心思路

我们可以利用数组的filter()方法来筛选符合条件的元素,关键是先把params统一转换成数组格式,这样不管输入是单个值还是数组,判断逻辑都能保持一致,不用写两套代码。

具体代码实现

情况1:params是单个字符串值

就像你给出的示例场景:

var params = "WOOLEN";
var arr = [
  { "sector_title": "WOOLEN", "sector_rate": "44" },
  { "sector_title": "GLASS", "sector_rate": "31" },
  { "sector_title": "PALM", "sector_rate": "34" }
];

// 先将params统一转为数组(兼容单个值的情况)
const targetSectors = Array.isArray(params) ? params : [params];
// 过滤数组,保留sector_title在目标集合中的元素
const filteredArr = arr.filter(item => targetSectors.includes(item.sector_title));

console.log(filteredArr);
// 输出结果:[{"sector_title": "WOOLEN", "sector_rate": "44"}]

情况2:params是多个值的数组

如果你的参数是一组sector_title值,比如["WOOLEN", "GLASS"],直接用上面的逻辑就行,不需要改动:

var params = ["WOOLEN", "GLASS"];
var arr = [
  { "sector_title": "WOOLEN", "sector_rate": "44" },
  { "sector_title": "GLASS", "sector_rate": "31" },
  { "sector_title": "PALM", "sector_rate": "34" }
];

const targetSectors = Array.isArray(params) ? params : [params];
const filteredArr = arr.filter(item => targetSectors.includes(item.sector_title));

console.log(filteredArr);
// 输出结果:[{"sector_title": "WOOLEN", "sector_rate": "44"}, {"sector_title": "GLASS", "sector_rate": "31"}]

可选优化:忽略大小写匹配

如果需要匹配时不区分大小写(比如参数传入"woolen"也能匹配到"WOOLEN"),可以调整判断逻辑:

const filteredArr = arr.filter(item => 
  targetSectors.some(sector => sector.toLowerCase() === item.sector_title.toLowerCase())
);

这样不管参数和数组中的值是大写还是小写,都能正确匹配啦!

内容的提问来源于stack exchange,提问作者Muhammad Adeel Irshad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 19:27:48