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