JavaScript中按指定位置截取字符串?寻求更简便实现方式
更简便的字符串截取实现方式
嘿,你的需求其实用JavaScript原生的字符串方法就能一步搞定,完全不用手动拆数组再拼接这么麻烦~
先看你当前的实现代码:
function breakString(str, postion) { var newStr; var arr = [], res = []; arr = str.split(""); for(var i = 0; i < postion; i++){ res[i] = arr[i] newStr = res.join(""); } return newStr; } console.log(breakString("rasika", 3));
这段代码确实能正常运行,但步骤太冗余了——把字符串转成数组、循环逐个提取元素、再拼接回字符串,其实JavaScript早就为我们提供了专门的字符串截取方法,直接用就行:
方法1:使用 slice()
slice() 是字符串的原生方法,专门用来提取字符串的某个部分,语法非常简单:str.slice(startIndex, endIndex)。你要截取前position个字符,只需要传入起始索引0和结束索引position即可:
function breakString(str, position) { return str.slice(0, position); } console.log(breakString("rasika", 3)); // 输出 "ras"
方法2:使用 substring()
substring() 的用法和slice()类似,同样可以实现你的需求,语法是str.substring(startIndex, endIndex):
function breakString(str, position) { return str.substring(0, position); } console.log(breakString("rasika", 3)); // 输出 "ras"
小补充:两个方法的细微区别
slice()支持负数索引(比如str.slice(-3)会截取最后3个字符),而substring()不支持负数;- 如果传入的起始索引大于结束索引,
substring()会自动交换两者的位置,而slice()会返回空字符串。
不过对于你的需求来说,两个方法都能完美胜任,而且比你原来的实现简洁太多啦!
内容的提问来源于stack exchange,提问作者Rasika Weragoda
相关产品推荐
相关产品推荐

