gpt4 book ai didi

javascript - AngularJs 通过另一个数组过滤一个数组

转载 作者:行者123 更新时间:2023-11-28 13:32:10 29 4
gpt4 key购买 nike

我在 Controller 中有三个数组:

  1. $scope.allUsers 包含 :id:name 的所有用户。例如。类似this .
  2. $scope.job.delegate_to 包含与作业委派相关的信息。看起来像这样。
    $scope.job.delegated_to = [
{id: 5, user_id:33, user_name:"Warren", hour_count:4},
{id: 5, user_id:18, user_name:"Kelley", hour_count:2},
{id: 5, user_id:10, user_name:"Olson", hour_count:40},
{id: 5, user_id:42, user_name:"Elma", hour_count:2},
{id: 5, user_id:45, user_name:"Haley", hour_count:4},
{id: 5, user_id:11, user_name:"Kathie", hour_count:3}
]
  • $scope.freeUsers 必须包含所有用户,而不是委派给作业。
  • 我添加了 watch

    $scope.$watch('job.delegated_to.length', function(){
    $scope.freeUsers = filterUsers( $scope.allUsers, $scope.job.delegated_to );
    });

    但无法构造一个有效的过滤器。

    最佳答案

    你的filterUsers函数将是这样的:

    var filterUsers = function(allUsers, jobs) {
    var freeUsers = allUsers.slice(0); //clone allUsers
    var jobUserIds = [];
    for(var ind in jobs) jobUserIds.push(jobs[ind].user_id);
    var len = freeUsers.length;
    while(len--){
    if(jobUserIds.indexOf(allUsers[len].id) != -1) freeUsers.splice(len, 1);
    }
    return freeUsers;
    }

    结账 fiddle http://jsfiddle.net/cQXBv/

    关于javascript - AngularJs 通过另一个数组过滤一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24077357/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com