确认结束

时间:2018-05-13 02:05:12

标签: javascript

我试图编写一个函数来检查“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,我想要对此有所了解。你能给我一些反馈意见吗?谢谢。

1 个答案:

答案 0 :(得分:0)

由于endingtargetArray是两个不同的数组,即使内容相同,ending==targetArray;也不会向true提供'=='运算符。

要检查数组内容是否相等,你必须迭代每个内容并检查相等性,或者如果你特别关注'=='你使用

ending.toString() == targetArray.toString()