最近開始在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);