Short command if expression always returns true

I have a drop-down menu that lists groups. Each group contains a property (boolean) that determines whether the group owner is a user or another group

If the group owner is a user, I get the group owner identifier and compare it with an array of users to determine which user matches that identifier and set it as selectedOwner. However, if the group owner is a group, I will try to skip all my groups to find a match, and set this group asselectedOwner

This is my controller function:

$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, , , users groups.

, true, , selectedGroup.

:

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>&#10006;</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;
        };
    };      
};
+4
2

"False", . "False" - , .

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
+1

selectedGroup:  { 
name: Test Group,
id: 10,
description: ,
owner: 88,
ownerIsUser: False
}

selectedGroup:  { 
name: Test_Group, // or 'Test Group'
id: 10,
description: '',
owner: 88,
ownerIsUser: false
}
0

Source: https://habr.com/ru/post/1524643/


All Articles