我正在尝试确认字符串参数的结尾与目标参数相同。
为什么我的for循环不循环?对我来说,str.substr(-i)应该继续增加并最终匹配目标参数。
function confirmEnding(str, target) {
for (var i=0;i<str.length;i++) {
if (str.substr(-i) === target) {
return true;
}
else {
return false;
}
}
}
confirmEnding("Bastian", "n");
答案 0 :(得分:1)
这是您可以检查的一种方式。
function confirmEnding(str, target) {
// get the last n letters of the string where n is the length of the target
// then compare that to the target
return str.substr(str.length - target.length, target.length) === target;
}
console.log(confirmEnding("Bastian", "n")); // true
console.log(confirmEnding("Bastian", "ian")); // false
console.log(confirmEnding("Bastian", "i")); // true
&#13;
答案 1 :(得分:1)
问题在于return关键字。以下是您想要的功能示例:
function confirmEnding(str, target) {
var result = false;
for (var i=0;i<str.length;i++) {
if (str.substr(-i) === target) {
result = true;
}
}
return result;
}
console.log(confirmEnding("Bastian", "n"));
答案 2 :(得分:0)
<强>替代强>
试试.endsWith()
(ES6)?
示例:强>
'Bastian'.endsWith('n'); // true
参考: String.prototype.endsWith() (检查浏览器支持/ Polyfill)
答案 3 :(得分:0)
这是我的回答
function confirmEnding(str, target) {
// "Never give up and good luck will find you."
// -- Falcor
var newStr;
newStr=str.substr(-target.length,target.length);
if(newStr===target){
return true;
}else{
return false;
}
}
confirmEnding("Bastian", "n");