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

JavaScript按产品类型过滤并提取URL ID拼接(含空值处理)

问题修正:按规则处理对象数组并生成拼接结果

需求规则明确

  • 针对数组中每个包含url和productType的对象:
    • 若productType为"ESJ001":提取URL中的id;若提取出的id为undefined,返回空值
    • 若productType为"ESJ003":直接返回空值
    • 最终将所有结果用逗号拼接,空值保留占位(即连续逗号)

修正后的代码实现(以JavaScript为例)

假设原对象数组结构如下:

const items = [
  { url: 'https://example.com/item/001', productType: 'ESJ001' },
  { url: 'https://example.com/item/005', productType: 'ESJ001' },
  { url: 'https://example.com/item/xxx', productType: 'ESJ003' },
  { url: 'https://example.com/no-id', productType: 'ESJ001' }
];

处理逻辑代码:

// 根据实际URL结构调整id提取逻辑,这里假设id是URL路径最后一段
const extractIdFromUrl = (url) => {
  const pathSegments = new URL(url).pathname.split('/');
  const id = pathSegments.filter(seg => seg).pop(); // 过滤空段,取最后有效部分
  return id;
};

const processedResult = items.map(item => {
  switch (item.productType) {
    case 'ESJ003':
      return '';
    case 'ESJ001':
      const id = extractIdFromUrl(item.url);
      return id !== undefined ? id : '';
    default:
      return ''; // 其他类型默认返回空,可按需修改
  }
}).join(',');

console.log(processedResult); // 输出:"001,005,,"

代码关键点说明

  1. URL id提取逻辑:使用URL API解析路径,避免手动拆分字符串的兼容性问题;过滤空路径段后取最后部分作为id,可根据实际URL规则(如query参数?id=xxx)调整提取方式。
  2. 分支处理:通过switch清晰区分不同productType的处理逻辑,ESJ003直接返回空字符串;ESJ001提取id后判断是否有效,无效则返回空。
  3. 结果拼接:map生成对应结果数组后,用join(',')拼接,空字符串会保留逗号分隔的空位,完全匹配期望输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 12:35:23