JavaScript字符串比较总是返回true

JavaScript string comparison always returns true

本文关键字:返回 true 字符串 比较 JavaScript      更新时间:2023-09-26

我正在使用AngularJS做我的第一个项目,现在我遇到了一个无法理解的JavaScript问题。也许这对JS方面更有经验的人来说是微不足道的,如果是这样的话,我希望你们能帮助我:)

我在函数中做了这个字符串比较,它从视图中接收作为参数传递的id,然后将其与服务中保存的对象的id进行比较:

for (var i = 0; i < this.Sessions.length; i++) {
        if (this.Sessions[i].sessionId === sessionId) {
            for (var j = 0; j < this.Sessions[i].Instances.length; j++) {
                if (this.Sessions[i].Instances[j].instanceId === instanceId);
                {
                    console.log("InstanceId's: " + this.workoutSessions[i].Instances[j].instanceId + " " + instanceId);
                    //Do stuff and return.
                }
            }
        }
    }

当我运行该方法时,所有实例的instanceId都将计算为true。。为什么?据我所知,我只是在比较字符串,但我想不是。外部比较起到了应有的作用,这让我更加陌生。

控制台中的输出,显示无论字符串的值如何,它们的计算结果都为true。

实例ID:l0h34qzzgdlpu8fr 42p9smh9kxdsfw29

实例Id:42p9smh9kxdsfw29 42p9sm 9kxdsfw 29

我真正想做的是在找到正确的实例后立即停止函数,但如果我在if-块中放入返回语句,我的编译器告诉我j++语句是不可访问的,这表明无论表达式是真的,并且。。。我简直无法理解。

如何从视图传递参数:

    <div ng-repeat="instance in session.Instances">
    //Some form controls here...
    <div style="float: right;">
        <button class="btn btn-default" ng-click="addOne(session.sessionId, instance.instanceId)"> + 1</button>
        <button class="btn btn-default">Remove</button>    
    </div>
</div>

有人能帮忙吗??

提前谢谢。

if (this.Sessions[i].Instances[j].instanceId === instanceId);

结尾的冒号似乎是罪魁祸首。。。

删除if子句中的分号。

您的代码将与相同

 if (this.Sessions[i].Instances[j].instanceId === instanceId)
 {
      ;
 }
 {
      console.log("InstanceId's: " + this.workoutSessions[i].Instances[j].instanceId + " " + instanceId);
      //Do stuff and return.
 }