JavaScript字符串截断函数未生效问题求助
问题分析与解决
嘿,我一眼就瞅出你代码里的问题啦——你在if分支里计算了截断后的字符串,但没有把这个结果返回出去!
咱们仔细捋捋你的代码逻辑:当str.length >= num时,你确实写了拼接...的处理逻辑,但只是计算了这个值,却没有用return把它返回。所以代码会继续往下执行,最后走到return str,直接返回原字符串了,这就是为啥你得到的是原内容~
修正后的代码
只需要在每个分支里加上return,让条件满足时直接返回处理后的结果就行:
function truncate(str, num) { if (str.length >= num) { if (num > 3) { return str.substr(0, num - 3) + '...'; } else { return str.substr(0, num) + '...'; } } return str; } console.log(truncate("A-tisket a-tasket A green and yellow basket", 11));
测试这个代码,传入你给的参数会返回"A-tisket...",这就是你想要的截断效果啦。
小优化:简化代码
如果想让代码更简洁,可以用三元表达式替换内层的if-else,逻辑会更清晰:
function truncate(str, num) { if (str.length <= num) return str; return num > 3 ? str.substr(0, num - 3) + '...' : str.substr(0, num) + '...'; }
内容的提问来源于stack exchange,提问作者Xinyi Li
相关产品推荐
相关产品推荐

