我正在做我的第一个项目,使用AngularJS,现在我遇到了一个JavaScript无法理解的问题。也许这对于更有经验的JS来说是微不足道的,如果是这样,我希望你们能帮助我:)JavaScript字符串比较总是返回true
我在函数中做了这个字符串比较,它接收一个作为参数从一个视图传递过来的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.
}
}
}
}
当我运行的方法的所有实例的所有实例Id的将评估为true。为什么???据我所知,我只是比较字符串,但我猜不是。外部比较按照它应该的方式工作,这对我来说更加陌生。
在控制台中输出,显示无论字符串的值如何,它们的计算结果都为true。
INSTANCEID的:l0h34qzzgdlpu8fr 42p9smh9kxdsfw29
INSTANCEID的:42p9smh9kxdsfw29 42p9smh9kxdsfw29
我真正想要做的是尽快停止功能,因为我已经找到了正确的实例,但是,如果我把一个return语句内if-block我的编译器告诉我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>
能
任何人的帮助?
在此先感谢。
你的代码看起来像'如果(...)你的代码将是相同的; {}'。那'';'是不需要的...... – DCoder 2014-09-28 07:34:26
你能设置一个蹲跳者吗?不能使用提供的代码来找出问题... – harishr 2014-09-28 07:37:02
yep @DCoder是对的,这样做:“if(this.Sessions [i] .Instances [j] .instanceId === instanceId);“就像这样做:“if(this.Sessions [i] .Instances [j] .instanceId === instanceId){}” – Josep 2014-09-28 07:38:01