如何从对象数组的URL中提取ID并逗号拼接,处理undefined为空
修正方案
修正后的代码
let arrayOfObjects = [ { url: 'http://localhost:3000/redApi?id=001&name=abc&address=1234@gmail.com' }, { url: 'http://localhost:3000/redApi?id=002&name=xyz&address=5647@gmail.com' }, { url: 'http://localhost:3000/redApi?id=undefined&name=pqr&address=980@gmail.com' } ] const result = arrayOfObjects.map(item => { // 用URL对象解析完整url,直接获取查询参数 const params = new URL(item.url).searchParams; let id = params.get('id'); // 把值为"undefined"的id替换为空字符串 return id === 'undefined' ? '' : id; }).join(','); // 将处理后的id用逗号拼接 console.log(result); // 输出:001,002,
关键修正点
- 修复数组语法错误:原数组中每个对象之间缺少逗号,这是基础语法错误,会导致代码无法运行
- 遍历处理每个对象:原代码仅处理了映射后的url数组,未逐个处理每个对象的url,改用
map遍历每个对象 - 可靠解析URL参数:直接使用
URL对象解析完整url,无需手动拆分查询字符串,避免边界情况出错 - 处理"undefined"值:添加判断逻辑,将值为字符串"undefined"的id替换为空字符串
- 拼接结果:用
join(',')将所有处理后的id拼接成符合要求的字符串
内容的提问来源于stack exchange,提问作者Solid_layout
相关产品推荐
相关产品推荐

