function truncate(str, num) {
if(str.length < num) {
return str;
}
else {
str = str.slice(0, num);
return str;
}
}
truncate('A-tisket a-tasket A green and yellow basket', 11);
//truncate('A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket
A green and yellow basket'.length)
//truncate('A-tisket a-tasket A green and yellow basket',
'A-tisket a-tasket A green and yellow basket'.length + 2)
我需要让代码返回&#39; A-tisket ...&#39;如果字符串的长度比我的num参数长。当我运行此代码时,它会切换到A-tisket a - &#39;,如何删除&#34;一 - &#34;当字符串的长度超过我的num参数时,将句点添加到结尾?我尝试在.split()之后使用.replace()方法,但无法找到替换它的方法。
答案 0 :(得分:2)
确定!好消息是,你基本上已经拥有它了。
如果您想要将...
添加到最后,您就可以了解它 - 只需将return str
更改为return str + "...";
为确保我们在...
等于字符串长度时不添加num
,我们只需将<
更改为<=
。
这样就可以了:
function truncate(str, num) {
if(str.length <= num) {
return str;
} else {
str = str.slice(0, num);
return str + "...";
}
}
输出:
truncate('A-tisket a-tasket A green and yellow basket', 11);
>>> "A-tisket a-..."
truncate('A-tisket a-tasket A green and yellow basket',
'A-tisket a-tasket A green and yellow basket'.length);
>>> "A-tisket a-tasket A green and yellow basket"
truncate('A-tisket a-tasket A green and yellow basket',
'A-tisket a-tasket A green and yellow basket'.length + 2);
>>> "A-tisket a-tasket A green and yellow basket"
答案 1 :(得分:1)
只需剪掉更多字符(为句号腾出空间),然后将句点添加到返回值字符串中。
我还建议你在你的情况下使用<=
,否则你最终会在不需要时加点。
最后,为了获得完全的弹性,您需要确保不要通过切片来解决问题。负长度...
function truncate(str, num) {
if (str.length <= num) {
return str;
} else {
var append = "...";
var remove = num - append.length;
if (remove < 0) {
remove = 0;
append = append.slice(0, num);
}
str = str.slice(0, remove);
return str + append;
}
}
答案 2 :(得分:0)
您可以使用+运算符将句点连接到字符串的结尾。
function truncate(str, num) {
if(str.length < num) {
return str;
}
else {
str = str.slice(0, num);
return str + "...";
}
}