确认字符串的结尾(可变结尾长度)
Confirm the Ending of an String (Varying Ending Length)
此任务要求您编写一个带有两个参数的函数。第一个参数是一个名为 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
应始终 return true
具有有效的 target
输入。左侧设置目标等于 substr
,起始点为 str.length
(str
最右侧的位置)并减去 target
长度(到达我们子串的起点)。不需要结束点输入,因为子字符串将 运行 str
.
的结尾
function end(str, target) {
var start = str.length - target.length;
if(str.substr(start) == target){
return true;
}
else {
return false;
}
}
您也可以试试这个代码。
substring方法可以取负值从字符串末尾开始工作。您的问题的解决方案非常简单:
function end (str, target) {
return str.substr(-target.length) === target;
}
end("simple is better", "better"); // returns true
// which is the same as writing
"simple is better".substr(-6) === "better" // true again
我觉得这很简单:
function end(str, target) {
return str.substr(-target.length) == target;
}
我喜欢你原来的答案,它很干净而且很容易准备。
尝试删除第 2 行的 -1。这样它会 return 您的 substr 中的所有 target 单词。
function end(str, target) {
var start = str.length - (target.length);
if(str.substr(start) == target){
return true;
} else {
return false;
}
}
end ("He has to give me a new name", "name")
当sub-string没有return第二个参数时,它会return从数字即开始到结束字符串。
function confirmEnding(str, target) {
var position = str.length - target.length; //get start position for our .substr method.....
if (str.substr(position, target.length == target){ // logical expression wich tell our method(.substr) from which position we need get information then we compare result with our "target" argument.
return true;
} else { return false; }
}
确认结束("Bastian","n"); // 真
这是一个简单的解决方案:
function confirmEnding(str, target) {
var result;
//getting the last string depend on target length
var last = str.substring(str.length - target.length);
//checking the last string with the target
if(last === target){
result = true;
} else {
result = false;
}
return result;
}
我的解决方案使用 substr 方法,该方法获取目标的长度,并使用减号为我们提供第一个字符串的最后一个字符以供比较。
const confirmEnding = (str, target) => str.substr(-target.length) === target ?
true :
false;
给你:
const solution = (str, target) => str.endsWith(target);
最干净的方法。
此任务要求您编写一个带有两个参数的函数。第一个参数是一个名为 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
应始终 return true
具有有效的 target
输入。左侧设置目标等于 substr
,起始点为 str.length
(str
最右侧的位置)并减去 target
长度(到达我们子串的起点)。不需要结束点输入,因为子字符串将 运行 str
.
function end(str, target) {
var start = str.length - target.length;
if(str.substr(start) == target){
return true;
}
else {
return false;
}
}
您也可以试试这个代码。
substring方法可以取负值从字符串末尾开始工作。您的问题的解决方案非常简单:
function end (str, target) {
return str.substr(-target.length) === target;
}
end("simple is better", "better"); // returns true
// which is the same as writing
"simple is better".substr(-6) === "better" // true again
我觉得这很简单:
function end(str, target) {
return str.substr(-target.length) == target;
}
我喜欢你原来的答案,它很干净而且很容易准备。 尝试删除第 2 行的 -1。这样它会 return 您的 substr 中的所有 target 单词。
function end(str, target) {
var start = str.length - (target.length);
if(str.substr(start) == target){
return true;
} else {
return false;
}
}
end ("He has to give me a new name", "name")
当sub-string没有return第二个参数时,它会return从数字即开始到结束字符串。
function confirmEnding(str, target) {
var position = str.length - target.length; //get start position for our .substr method.....
if (str.substr(position, target.length == target){ // logical expression wich tell our method(.substr) from which position we need get information then we compare result with our "target" argument.
return true;
} else { return false; }
}
确认结束("Bastian","n"); // 真
这是一个简单的解决方案:
function confirmEnding(str, target) {
var result;
//getting the last string depend on target length
var last = str.substring(str.length - target.length);
//checking the last string with the target
if(last === target){
result = true;
} else {
result = false;
}
return result;
}
我的解决方案使用 substr 方法,该方法获取目标的长度,并使用减号为我们提供第一个字符串的最后一个字符以供比较。
const confirmEnding = (str, target) => str.substr(-target.length) === target ?
true :
false;
给你:
const solution = (str, target) => str.endsWith(target);
最干净的方法。