Vanilla JS循环中如何格式化过滤后的字符串并返回目标格式值?
实现方案
你可以直接在现有提取路径后缀的逻辑中新增格式转换步骤,无需二次遍历数组,Vanilla JS 实现如下:
方案1:改造原有reduce逻辑(推荐)
const result = links.reduce((acc, {href: link}) => { const last = link.split('/').pop(); if (!(last == Number(last))) { // 两步转换:先把横杠替换为空格,再将首字母转为大写 const formattedStr = last .replace(/-/g, ' ') // 兼容所有浏览器的横杠替换写法,不需要ES2021支持 .replace(/^./, firstChar => firstChar.toUpperCase()); acc.push(formattedStr); } return acc; }, []);
方案2:对已有结果数组做转换
如果你已经拿到了["user-data", "customer-data", "suppliers-sup"]这个中间结果,可以直接用map批量转换:
const rawResult = ["user-data", "customer-data", "suppliers-sup"]; const formattedResult = rawResult.map(item => item.replace(/-/g, ' ').replace(/^./, c => c.toUpperCase()) );
两种方案最终输出的都是你需要的格式:
[ "User data", "Customer data", "Suppliers sup" ]
内容的提问来源于stack exchange,提问作者yajoj98337
相关产品推荐
相关产品推荐

