此任务要求您编写一个带有两个参数的函数。第一个参数是一个名为 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');

最佳答案

编辑

正如@torazaburo 所说。正确答案是:

function end(str, target) {
    return target === str.substr(str.length - target.length);
}

因为字符串 确实 以空字符串结尾

原始答案
function end(str, target) {
    return target.length > 0 && target === str.substr(str.length - target.length);
}

http://jsfiddle.net/tqsx0gLa/2/

来自评论:
此代码使用 && 运算符设置逻辑比较。左侧 target.length > 0 应始终返回带有有效 true 输入的 target。左侧是设置 target 等于 substr 从定位点开始,取 str.length (在 str 最右侧的位置)并减去 target 长度(到达我们子串的起点)。不需要端点输入,因为子字符串将运行到 str 的末尾。

关于javascript - 确认字符串的结尾(不同的结尾长度),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31095406/

10-13 00:40