20180802

检查字符串结尾


题目描述:
判断一个字符串(str)是否以指定的字符串(target)结尾。如果是,返回true;如果不是,返回false。
测试用例:
confirmEnding("Bastian", "n") 应该返回 true.
confirmEnding("Connor", "n") 应该返回 false.
confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification") 应该返回 false.
思路:
获取字符串B的长度,获取字符串B的长度,从指定位置截取字符串A得到它与B等长的末尾,比较A的末尾与B是否相同。
代码:

function confirmEnding(str, target) {
  var a = str.length;
  var b = target.length;
  var strEnd = str.substr(a-b,a);
  if (strEnd == target){
    return true;
  }
  else{
    return false;
  } 
}

另:用lastIndexOf()方法从后向前搜索字符串,若返回位置为0则说明所给字符串末尾为指定字符串

重复输出字符串


题目描述:
重复一个指定的字符串 num次,如果num是一个负数则返回一个空字符串。
测试用例:
repeat("*", 3) 应该返回 "***".
repeat("abc", 3) 应该返回 "abcabcabc".
repeat("abc", 4) 应该返回 "abcabcabcabc".
代码:

function repeat(str, num) {
  var spec = "";
  if(num < 0){
    return spec;
  }
  for(var i = num;i > 0;i--){
    spec = spec + str;
  }
  return spec;
}

截断字符串


题目描述:
如果字符串的长度比指定的参数num长,则把多余的部分用...来表示。
切记,插入到字符串尾部的三个点号也会计入字符串的长度。
但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。
测试用例:
truncate("A-tisket a-tasket A green and yellow basket", 11) 应该返回 "A-tisket...".
truncate("Peter Piper picked a peck of pickled peppers", 14) 应该返回 "Peter Piper...".
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".
truncate("A-", 1) 应该返回 "A...".
truncate("Absolutely Longer", 2) 应该返回 "Ab...".

代码:

function truncate(str, num) {
  var len = str.length;
  if(num >= len){
     return str; 
  }
  else if(num-3 < len && num-3 > 0){
    return str.substr(0,num-3)+"..."; 
  }
  else{
    return str.substr(0,num)+"...";
  }
}

分割数组


题目描述:
把一个数组arr按照指定的数组大小size分割成若干个数组块。
测试用例:
chunk([1,2,3,4],2)=[[1,2],[3,4]];
chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];
代码:

function chunk(arr, size) {
  var l = arr.length;
  var i = Math.floor(l/size);
  var y = l%size;  
  for(;i >= 0;i--){
    if(y === 0 && i === 0){
      return arr;
    }
    if(y !== 0 && i === 0){
      size = y;
    }
    var j = 0;
    var a = [];
    while(j < size){
      a.push(arr.shift());
      j ++;
    }
    arr.push(a);
  }
  return arr;
}

截断数组


题目描述:
返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始。
测试用例:
slasher([1, 2, 3], 2) 应该返回 [3].
slasher([1, 2, 3], 0) 应该返回 [1, 2, 3].
代码:

function slasher(arr, howMany) {
  arr.splice(0,howMany);
  return arr;
}

比较字符串


题目描述:
如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。
代码:


你可能感兴趣的:(20180802)