Aus*_*sen 3 javascript string substring
此任务要求您编写一个带有两个参数的函数.第一个参数是一个被调用str的字符串,第二个参数是一个我们的目标结尾命名的字符串target.任务是验证结尾str与目标结尾相同.说明书指示使用该.substr()方法将结束与目标进行比较.我遇到的问题是该方法将有多个起始点和长度参数,.substr因为目标结尾可以是可变长度.看看我尝试解决这个问题,请指导我走正确的道路.
function end(str, target) {
var start = str.length - (target.length - 1);
if(str.substr(start, str.length) == target){
return true;
} else {
return false;
}
}
end('Bastian', 'n');
Run Code Online (Sandbox Code Playgroud)
编辑
正如@torazaburo所说.正确的答案是:
function end(str, target) {
return target === str.substr(str.length - target.length);
}
Run Code Online (Sandbox Code Playgroud)
由于该字符串不以空字符串结束
原始答案
function end(str, target) {
return target.length > 0 && target === str.substr(str.length - target.length);
}
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/tqsx0gLa/2/
From Comments:
此代码使用&&运算符设置逻辑比较.左侧target.length > 0应始终返回true有效target输入.左侧是substr通过取str.length(位于最右侧的位置str)并减去target长度(到达我们子串的起点)来设置目标等于所在点的起点.不需要端点输入,因为子字符串将运行到结尾str.