最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。
题目描述:
截断一个字符串!
如果字符串的长度比指定的参数num长,则把多余的部分用…来表示。
切记,插入到字符串尾部的三个点号也会计入字符串的长度。
但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。
思路:
截取字符串用到了String对象的slice()方法,提取字符串中的一部分,并返回这个新的字符串。该方法的语法为:str.slice(beginSlice[, endSlice])
,它提取的新字符串包括beginSlice但不包括 endSlice。
如果beginSlice为负数,会当成(str.length+beginSlice)处理;
如果endSlice为负数,同理,也会被当成(str.length+endSlice)处理。
实现:
function truncate(str, num) {
var newStr="";
if(str.length>num){
if(num<=3){
newStr = str.slice(0,num)+"...";
}else{
newStr = str.slice(0,num-3)+"...";
}
}else{
newStr=str;
}
return newStr;
}
truncate("A-tisket a-tasket A green and yellow basket", 11);