javascript – 短手if语句总是返回true
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 短手if语句总是返回true,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2208字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 短手if语句总是返回true](/upload/InfoBanner/zyjiaocheng/771/02a335a699594d4099ae175689d19e57.jpg)
我有一个下拉菜单,列出了组.每个组都包含一个属性(布尔值),用于确定组所有者是用户还是其他组
如果组所有者是用户,则获取组ownerID并将其与用户数组进行比较,以确定哪个用户与该ID匹配,并将该用户设置为selectedOwner.但是,如果组所有者是一个组,我将尝试遍历所有组以查找匹配项并将该组设置为selectedOwner
这是我的控制器功能:
$scope.groupOwner = function (){
var temp = $scope.selectedGroup.ownerIsUser ? $scope.users : $scope.groups;
var index = temp.length;
console.dir(temp);
while(index--){
if($scope.selectedGroup.owner === temp[index].id){
$scope.selectedOwner = temp[index];
console.log($scope.selectedOwner);
break;
};
};
};
每当下拉列表被更改时,它都会调用groupOwner来检查selectedUser.ownerIsUser属性,以确定我应该查看哪个数组,用户或组.
但是,无论selectedGroup所有者属性设置为什么,temp变量始终返回true.
这就是对象的样子:
User = {
name: Demo Administrator,
id: 90,
domain: i:0#.w|itun\demoadmin_compulite,
email: ,
isAdmin: False
}
selectedGroup = {
name: Test Group,
id: 10,
description: ,
owner: 88,
ownerIsUser: False
}
HTML:
<div class="topRow">
<label for="entityDropDown">Select a Group:</label>
<select id="entityDropDown" ng-model="selectedGroup" ng-options="group as group.name for group in groups" ng-change="getGroupInfo(selectedGroup)"></select>
<div class="delGroupBtn"><a>✖</a>
</div>
</div>
对象的控制台输出:
Object {name: "Test Group 4", id: "117", description: "", owner: "71", ownerIsUser: "False"…}
description: ""
id: "117"
name: "Test Group 4"
owner: "71"
ownerIsUser: "False"
__proto__: Object
解决了:
$scope.groupOwner = function (){
//object stores string not booleans
var isUser = $scope.selectedGroup.ownerIsUser === "True"? true : false;
var owner = isUser ? $scope.user : $scope.group;
var index = owner.length;
console.dir(owner);
while(index--){
if($scope.selectedGroup.owner === owner[index].id){
$scope.selectedOwner = owner[index];
console.log($scope.selectedOwner);
break;
};
};
};
解决方法:
你的变量是“False”而不是boolean false.“False”是一个字符串,它总是计算为true.
var temp = $scope.selectedGroup.ownerIsUser ? $scope.users : $scope.groups;
将始终设置temp = $scope.users
一些javascript控制台测试示例:
> a = "False"
> "False"
> b = false
> false
> testValue = a ? 1 : 2;
> 1
> testValue = b ? 1 : 2;
2
内容总结
以上是互联网集市为您收集整理的javascript – 短手if语句总是返回true全部内容,希望文章能够帮你解决javascript – 短手if语句总是返回true所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。