确认字符串的结束(变化的结束长度)

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)

rnr*_*ies 6

编辑

正如@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.