JavaScript字符串比较始终返回true

时间:2014-09-28 07:32:02

标签: javascript angularjs

我正在使用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 ..为什么???据我所知,我只是比较字符串,但我猜不是。外部比较可以正常工作,这让我更加陌生。

在控制台中输出,表明无论字符串的值如何,它们都会评估为真。

InstanceId&#39; s:l0h34qzzgdlpu8fr 42p9smh9kxdsfw29

InstanceId&#39; s:42p9smh9kxdsfw29 42p9smh9kxdsfw29

我想要做的就是在我找到正确的实例后立即停止该功能,但是如果我在IF块中放入一个return语句,我的编译器会告诉我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>

有人可以帮忙吗??

提前致谢。

2 个答案:

答案 0 :(得分:0)

if (this.Sessions[i].Instances[j].instanceId === instanceId);
结尾的冒号似乎是罪魁祸首......

答案 1 :(得分:0)

删除if子句中的分号。

您的代码与

相同
 if (this.Sessions[i].Instances[j].instanceId === instanceId)
 {
      ;
 }

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