我试图编写一个函数来检查“str”是否以给定的“target”结束。我最终得到了正确的答案,但想知道我在下面写的代码中做错了什么。
function confirmEnding(str, target) {
var targetArray = target.split("");
var strArray = str.split("");
var ending = [];
for (i=target.length; i>0; i--){
if (strArray[str.length-i]==targetArray[target.length-i]){
ending.push(targetArray[target.length-i]);
} else {
ending.push(0);
}
}
return ending==targetArray;
}
基本上如果str和target的第一个字母相同,我将它添加到一个名为“ending”的数组中,否则,添加0.然后一旦完成,我会比较两个数组,它会给我如果str以target结束,则返回true,否则返回false。它只返回false,我想要对此有所了解。你能给我一些反馈意见吗?谢谢。
答案 0 :(得分:0)
由于ending
和targetArray
是两个不同的数组,即使内容相同,ending==targetArray;
也不会向true
提供'=='运算符。
要检查数组内容是否相等,你必须迭代每个内容并检查相等性,或者如果你特别关注'=='你使用
ending.toString() == targetArray.toString()