七、Confirm the Ending 确认字符串是否以指定的串结尾
思路:
1、主要是用String.prototype.substr()
获取尾串是否与目标相等
代码如下:
function confirmEnding(str, target) { // "Never give up and good luck will find you." // -- Falcor if(target.length > str.length){ return false; } else{ if(str == target || str.substr(str.length- target.length) == target){ return true; }else{ return false; } } } confirmEnding("Bastian", "n");
八、Repeat a string repeat a string 重复一字符串
思路:
比较简单,拼上去就行
代码如下:
function repeatStringNumTimes(str, num) { var tem = str; // repeat after me if(num<0){ str = ''; } else { for(var i=1;i<num;i++){ str += tem; } } return str; } repeatStringNumTimes("abc", 3);
九、Truncate a string 截取字符串超出用…表示
思路:
1、主要是用String.prototype.slice()
把首串截出来与…合拼
代码如下:
function truncateString(str, num) { var len = str.length; // Clear out that junk in your trunk if(len > num){ if(num>3){ str = str.slice(0,num - 3) + '...'; } else { str = str.slice(0,num) + '...'; } } return str; } truncateString("A-tisket a-tasket A green and yellow basket", 11);
十、Chunky Monkey 等分数组变成多个子数组
思路:
1、把数组等分并求余
2、组成新的数组
代码如下:
function chunkArrayInGroups(arr, size) { // Break it up. var len = arr.length, m = len%size, div = 1, rArr = []; if(len > size){ div = Math.floor(len/size); for(var i=0;i<div;i++){ rArr.push(arr.slice(i*size,(i+1)*size)); } if(m>0){ rArr.push(arr.slice(m*(-1))); } } return rArr; } chunkArrayInGroups(["a", "b", "c", "d"], 2);
十一、Slasher Flick 把数组中的前面N个元素去掉
思路:
1、直接用Array.prototype.splice()
把数组分割
代码如下:
function slasher(arr, howMany) { // it doesn't always pay to be first if(howMany === 0){ return arr; } if(arr.length <= howMany){ return []; }else{ arr.splice(0,howMany); return arr; } } slasher([1, 2, 3], 2);