最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,方便以后复习。
题目:
如果字符串的长度比指定的参数num
长,则把多余的部分用...
来表示。
切记,插入到字符串尾部的三个点号也会计入字符串的长度。
但是,如果指定的参数num
小于或等于3,则添加的三个点号不会计入字符串的长度。
思路:
截取字符串用到了String对象的slice()方法,提取字符串中的一部分,并返回这个新的字符串。该方法的语法为:str.slice(start, end)
,它提取的新字符串包括字符串 string对象从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
如果start为负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
如果end为负数,同理,那么它规定的是从字符串的尾部开始算起的位置。
实现:
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("Peter Piper picked a peck of pickled peppers", 14);
输出:
Peter Piper...