Javascript 如何使用1个公共json字段(嵌套数组)映射2个数组

Javascript 如何使用1个公共json字段(嵌套数组)映射2个数组,javascript,angularjs,for-loop,nested-loops,Javascript,Angularjs,For Loop,Nested Loops,我返回了2个数组……在本例中是Employments和Users。它们都有一个公共字段“id”,我想使用该字段进行映射 我现在可以使用for循环来映射它,但是因为我在嵌套数组上循环…我只能捕获数组第一部分的映射 我的json对象: $scope.Users = [{ id: 1, name: "Ryan" }, { id: 2, name: "Julie" }, {

我返回了2个数组……在本例中是Employments和Users。它们都有一个公共字段“id”,我想使用该字段进行映射

我现在可以使用for循环来映射它,但是因为我在嵌套数组上循环…我只能捕获数组第一部分的映射

我的json对象:

     $scope.Users = [{
          id: 1,
          name: "Ryan"
      }, {
          id: 2,
          name: "Julie"
      }, {
          id: 3,
          name: "Stu"
      }, 
      {
          id: 4,
          name: "Holly"
      }];

      $scope.Employments = [{
          categoriesBag: [
            {
              category: [
                {
                  user_id: 1,
                  title: "manager"
                },
                {
                  user_id: 2,
                  title: "student"
                }
              ]
            },
            {
              category: [
                {
                  user_id: 3,
                  title: "worker"
                },
                {
                  user_id: 4,
                  title: "facilty"
                }
              ]
            }
          ]
      }];
我用于映射数据的for循环:

$scope.getCategory = function(id) {
        var employmentCategories =  $scope.Employments.categoriesBag[0].category;
        for (var i = 0; i < employmentCategories[0].category.length; i++) {
          if (employmentCategories[0].category[i].user_id === id) {
            return employmentCategories[0].category[i].title;
          }
        }
      };    
$scope.getCategory=函数(id){
var employmentCategories=$scope.Employments.categoriesBag[0]。类别;
对于(var i=0;i

因为我指定只需要第一个数组employmentCategories[0],所以for循环中不包括其他两个用户。有没有一种方法可以让我在一个循环中循环,只在嵌套的类别上循环?

您可以使用嵌套的循环

$scope.getCategory = function(id) {
    for (bag in $scope.Employments.categoriesBag) {
        for (category in bag.category) {
            if (category.user_id == id){
               return category.title
            }
        }
    }
}

您希望最终合并的数组是什么样子的?只需为(var bag=0;bag并不重要……我只想根据用户的想法返回该员工的头衔。我知道如何将其转换为forEach?forEach可能并不最适合搜索列表中的对象。这是因为即使所需元素位于列表的开头,也会对列表中的所有元素调用回调。