截断Javascript中的字符串,混淆最后两个测试字符串
我在为freecodecamp做一个项目 项目规则: 如果字符串(第一个参数)长于给定的最大字符串长度(第二个参数),则截断该字符串。返回带有。。。结束 请注意,在末尾插入三个点将增加字符串长度 但是,如果给定的最大字符串长度num小于或等于3,则在确定截断字符串时,添加三个点不会增加字符串长度 我的测试字符串包括:截断Javascript中的字符串,混淆最后两个测试字符串,javascript,truncate,Javascript,Truncate,我在为freecodecamp做一个项目 项目规则: 如果字符串(第一个参数)长于给定的最大字符串长度(第二个参数),则截断该字符串。返回带有。。。结束 请注意,在末尾插入三个点将增加字符串长度 但是,如果给定的最大字符串长度num小于或等于3,则在确定截断字符串时,添加三个点不会增加字符串长度 我的测试字符串包括: truncateString(“A-tisket A-tasket A绿色和黄色篮子”,11)应返回“A-tisket…” truncateString(“彼得·派珀挑了一啄腌辣椒
truncateString(“A-tisket A-tasket A绿色和黄色篮子”,11)
应返回“A-tisket…”
truncateString(“彼得·派珀挑了一啄腌辣椒”,14)
应该返回“彼得·派珀…”
truncateString(“A-tisket A-tasket A绿色和黄色篮”、“A-tisket A-tasket A绿色和黄色篮”。length)
应返回“A-tisket A-tasket A绿色和黄色篮”
truncateString(“A-tisket A-tasket A绿色和黄色篮”、“A-tisket A-tasket A绿色和黄色篮”。长度+2)
应返回“A-tisket A-tasket A绿色和黄色篮”
truncateString(“A-”,1)
应返回“A…”
truncateString(“绝对更长”,2)
应返回“Ab…”
现在,我已经使用三元
运算符解决了大部分问题,因此它相当简单,除了最后两个('a-',1)
和('Absolute Longer',2)
,我的问题是,如何成功完成截断并返回最后两个字符串的预期输出
资料来源:
function truncateString(str, num) {
return str.length > num ? str.slice(0, num - 3) + '...' : str;
}
大概是这样的:
function truncateString(str, num) {
var result = str;
if(str.length - 3 > num) {
result = str.length > num ? str.slice(0, num - 3) + '...' : str;
}
return result;
}
truncateString("A-", 1)
// "A-"
truncateString("A-tisket a-tasket A green and yellow basket", 11)
// "A-tisket..."
大概是这样的:
function truncateString(str, num) {
var result = str;
if(str.length - 3 > num) {
result = str.length > num ? str.slice(0, num - 3) + '...' : str;
}
return result;
}
truncateString("A-", 1)
// "A-"
truncateString("A-tisket a-tasket A green and yellow basket", 11)
// "A-tisket..."
您需要处理
num
小于或等于3的情况。您只需添加另一个条件即可执行此操作:
函数truncateString(str,num){
返回str.length>num?str.slice(0,num>=3?num-3:num)+’…':str;
}
日志(truncateString(“A-tisket A-tasket A绿色和黄色的篮子”,11));
log(truncateString(“Peter Piper挑了一啄腌辣椒”,14));
console.log(truncateString(“A-tisket A-tasket A绿色和黄色篮子”,“A-tisket A-tasket A绿色和黄色篮子”);
console.log(truncateString(“A-tisket A-tasket A绿色和黄色篮子”,“A-tisket A-tasket A绿色和黄色篮子”)。长度+2);
log(truncateString(“A-”,1));
log(truncateString(“绝对更长”,2))
您需要处理num
小于或等于3的情况。您只需添加另一个条件即可执行此操作:
函数truncateString(str,num){
返回str.length>num?str.slice(0,num>=3?num-3:num)+’…':str;
}
日志(truncateString(“A-tisket A-tasket A绿色和黄色的篮子”,11));
log(truncateString(“Peter Piper挑了一啄腌辣椒”,14));
console.log(truncateString(“A-tisket A-tasket A绿色和黄色篮子”,“A-tisket A-tasket A绿色和黄色篮子”);
console.log(truncateString(“A-tisket A-tasket A绿色和黄色篮子”,“A-tisket A-tasket A绿色和黄色篮子”)。长度+2);
log(truncateString(“A-”,1));
log(truncateString(“绝对更长”,2))代码>这会有帮助。不是完美的,但很有效,应该很容易让初学者理解
function truncateString(str, num) {
var res = "";
if (str.length > num) {
if (num > 3) {
res = str.slice(0, num - 3) + "...";
} else {
res = str.slice(0, num) + "...";
}
return res;
}
return str;
}
truncateString("A-tisket a-tasket A green and yellow basket", 11);
这会有帮助。不是完美的,但很有效,应该很容易让初学者理解
function truncateString(str, num) {
var res = "";
if (str.length > num) {
if (num > 3) {
res = str.slice(0, num - 3) + "...";
} else {
res = str.slice(0, num) + "...";
}
return res;
}
return str;
}
truncateString("A-tisket a-tasket A green and yellow basket", 11);
我注意到任务在2018年略有变化:
如果字符串(第一个参数)长于给定的最大字符串长度(第二个参数),则截断该字符串。返回带有。。。结束
解决办法是:
函数truncateString(str,num){
//把你行李箱里的垃圾清理掉
如果(str.length>num){
返回str.slice(0,num)+'…';
}否则{
返回str;
}
}
截断线(“A-tisket A-tasket A绿色和黄色篮子”,8)代码>我注意到任务在2018年略有变化:
如果字符串(第一个参数)长于给定的最大字符串长度(第二个参数),则截断该字符串。返回带有。。。结束
解决办法是:
函数truncateString(str,num){
//把你行李箱里的垃圾清理掉
如果(str.length>num){
返回str.slice(0,num)+'…';
}否则{
返回str;
}
}
截断线(“A-tisket A-tasket A绿色和黄色篮子”,8)代码>我对这个问题的简短解决方案
const truncateString = (str, num) => str.length > num ?
str.substr(0, num) + "..." :
str;
我对这个问题的简短解答
const truncateString = (str, num) => str.length > num ?
str.substr(0, num) + "..." :
str;
您正在对长度为2的字符串(“a-”
)执行num-3
。你为什么要做num-3?你的truncateString
的目的是什么?如果你真的解释了truncateString
实际上应该做什么,你的问题就会清楚得多。而不是让我们从输入和预期的输出中猜测规则。@RocketHazmat:我认为这样做的目的是,如果字符串比请求的num
长,就用..
替换最后三个字符。但是他们忽略了字符串小于3
的边大小写。或者num小于3。所以您需要做的是根据项目的最后一个需求添加条件逻辑。不能只使用num-3
每个字符串。您可以使用if/else
语句来完成它。如果字符串长度小于3,则只需在截断后追加..
,否则请再剪掉三个字符,然后在截断后追加..
。类似的情况是,您正在对长度为2的字符串(“a-”
)执行num-3
。你为什么要做num-3?您的truncateString
的目的是什么?如果您真正解释了truncateString
是什么,您的问题会更清楚