检查字符串结尾
题目描述:
判断一个字符串(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。
代码: