function confirmEnding(str, target) {
var end = target;
var match = '';
for(var x = 0; x < str.length; x++){
for(var j = 0; j < str[x].length; j++){
if(str[x][j]){
match = str[x][j];
}
}
}
return match.substr(-target.length) === target;
}
confirmEnding("He has to give me a new name", "name");
但我想知道我是否可以循环遍历字符串,然后使用适当的索引进行检查。
有人能理解我的做法,让我知道它是如何/为什么不可行的?
目前只检查最后一个字符,所以整个单词都不起作用。我知道下面的一行会起作用
return str.substr(-target.length) === target;
会起作用,但有人可以用我的方法帮助我
编辑:
我稍微改了一下,靠近但仍然没有运气。
function confirmEnding(str, target) {
for(var x = str.length-1; x < str.length; x++){
for(var j = target.length-1; j>=0; j--){
if(str[x] === target[j]){
return true;
} else{
return false;
}
}
}
}
confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification");
当它返回false时返回true。我明白为什么,但想着决心。
答案 0 :(得分:1)
如果使用循环是严格的要求,那么我会以某种方式进行
function confirmEnding(source, target) {
var lengthT = target.length;
var lengthS = source.length;
for(var x = 0; x < lengthT; x++) {
if(source[lengthS - 1 - x] !== target[lengthT - 1 - x]) {
return false;
}
}
return true;
}
confirmEnding("He has to give me a new name", "name"); // true
但confirmEnding
方法的简单实现只是
function confirmEnding(source, target) {
return source.substr(source.length - target.length, target.length) === target;
}