Javascript 查看字符串的结尾是否匹配
我有一个练习:检查字符串(第一个参数,str)是否以给定的目标字符串(第二个参数,target)结尾,而不使用方法Javascript 查看字符串的结尾是否匹配,javascript,string,Javascript,String,我有一个练习:检查字符串(第一个参数,str)是否以给定的目标字符串(第二个参数,target)结尾,而不使用方法endsWith()或任何其他方法。我的代码怎么了 功能确认(str,目标){ 对于原始代码中的(var i=1;i,存在一些问题: 将在线解决这些问题: function confirmEnding(str, target) { // using a for loop to iterate over the target string's length for (var
endsWith()
或任何其他方法。我的代码怎么了
功能确认(str,目标){
对于原始代码中的(var i=1;i,存在一些问题:
将在线解决这些问题:
function confirmEnding(str, target) {
// using a for loop to iterate over the target string's length
for (var i = 1; i <= target.length; i++) {
//setting up a variable that says false
val = false
//trying to compare the individual characters
if (str[str.length - i] === target[target.length - i]) {
//so what happens here:
//when the two match this will set val to true
//but every time the loop is run is will reset to false.
val = true;
}
//the return value is in the loop, so the loop will run once
return val;
}
}
confirmEnding("Bastian", "n");
将在循环的逻辑中返回true
请看下面的代码和其中的注释
功能确认(str,目标){
//获取目标字符串的长度
const targetLength=target.length;
//设置一个空字符串
让endstr=“”;
对于(设i=1;i),当前代码中的问题是结果的变量在循环内初始化
因此,它实际上只返回true/false,这取决于它比较的最后一个字符。
这将是目标字符串的第一个字符
你所能做的就是在发现差异后尽快摆脱这个循环
另外,还要检查字符串是否小于目标值,因为这样无论如何它都是false
F.e
功能确认(str,目标){
如果(str.length 对于(var i=1;i循环的每次迭代-因此,特别是第一次迭代-根据比较返回true
或false
。因此,您实际检查的只是第一次迭代。您应该删除else
,并将return false
移动到循环之后。让y你尝试过任何调试或日志记录吗?当你从函数“返回”时会发生什么?循环会继续执行吗?现在我只是修改它
string: Bastian target: irr