如何移除数组中字符串的.mp4后缀?slice方法失效的解决办法
解决数组内字符串移除.mp4后缀的问题
你之前用array_object.slice(0,-4)无效的原因很明确——这个方法是对数组本身进行截取操作,会移除数组的最后N个元素,而不是处理数组里的每个字符串元素。要实现你的需求,需要遍历数组,对每个字符串单独处理,这里给你几种实用的方案:
方案一:使用map() + slice()
这是最直接的方式,利用map()遍历数组的每个元素,对每个字符串调用slice(0,-4)来截取掉末尾的.mp4:
const array_object = ["video1.mp4", "video2.mp4", "video3.mp4"]; const processedArray = array_object.map(item => item.slice(0, -4)); // 输出结果:["video1", "video2", "video3"]
方案二:带判断的安全处理
如果你的数组里可能存在非.mp4结尾的字符串,可以先判断再处理,避免误修改:
const processedArray = array_object.map(item => { // 先检查字符串是否以.mp4结尾 if (item.endsWith(".mp4")) { return item.slice(0, -4); } // 不符合条件的元素保持原样 return item; });
方案三:正则表达式替换
用正则精准匹配字符串末尾的.mp4并替换为空,这种方式同样能兼容非.mp4的元素:
const processedArray = array_object.map(item => item.replace(/\.mp4$/, ""));
正则\.mp4$中的$表示匹配字符串的结尾,确保只会替换末尾的.mp4,不会影响字符串中间的类似内容。
内容的提问来源于stack exchange,提问作者Qwerpotify
相关产品推荐
相关产品推荐

