JavaScript 如何为数组内缺失指定前缀的元素添加前缀且不修改符合条件的原有元素
JavaScript 数组统一添加前缀解决方案
你可以直接使用数组的map遍历方法配合字符串前缀判断实现需求,代码如下:
const arr = ["images/1.jpg", "2.jpg", "some.jpg"]; const prefix = "images/"; // 遍历数组判断每个元素是否带指定前缀 const newArr = arr.map(item => { return item.startsWith(prefix) ? item : prefix + item; }); console.log(newArr); // 输出结果:["images/1.jpg", "images/2.jpg", "images/some.jpg"]
如果需要兼容不支持startsWith方法的老旧浏览器,可以改用indexOf判断前缀:
const arr = ["images/1.jpg", "2.jpg", "some.jpg"]; const prefix = "images/"; const newArr = arr.map(function(item) { return item.indexOf(prefix) === 0 ? item : prefix + item; });
逻辑说明
map方法会遍历原数组生成新数组,不会修改原有数组的数据- 先单独定义前缀变量,方便后续统一修改,避免多处硬编码
- 对每个元素做前缀校验:已经带指定前缀的直接返回原值,缺少前缀的拼接后再返回
内容的提问来源于stack exchange,提问作者yyz_vanvlet
相关产品推荐
相关产品推荐

