Javascript 将对象列表推送到angularjs中的另一个对象

Javascript 将对象列表推送到angularjs中的另一个对象,javascript,arrays,angularjs,object,Javascript,Arrays,Angularjs,Object,我有两个单独的对象,如下所示 Object1 = [{value:'A/B'},{value:'A/B/C'},{value:'A/F'},{value:'A/'}]; Object2 =[{option:'A/'},{option:'A/B'}]; 现在,我需要通过添加一个新属性来修改Object2,以便Object2必须如下所示 Object2 = [{option:'A/', directories:[{value:'A/'},{value:'A/B'},{

我有两个单独的对象,如下所示

Object1 =  [{value:'A/B'},{value:'A/B/C'},{value:'A/F'},{value:'A/'}];

Object2 =[{option:'A/'},{option:'A/B'}];
现在,我需要通过添加一个新属性来修改Object2,以便Object2必须如下所示

 Object2 = [{option:'A/',
            directories:[{value:'A/'},{value:'A/B'},{value:'A/B/C'},{value:'A/F'}]},
           {option:'A/B',
            directories:[{value:'A/B'},{value:'A/B/C'},{value:'A/F'},{value:'A/'}]}];
我需要的改变是

  • 在目录属性中,第一个值应为选项值

  • 其他值应该是来自Object1的剩余值

我尝试了以下代码

angular.forEach(Object2,function(value,key){

 angular.forEach(Object1,function(value,key){

        //I need the code here

  });
});
试试下面的方法

  angular.forEach($scope.Object2,function(value,key){
      value.directories = angular.copy($scope.Object1);
      for (var i=0; i < value.directories.length; i++) {
        if (value.directories[i].value === value.option) {
            var item = value.directories.splice(i,1);  
            value.directories.unshift(item[0]);
            break;
        }
      }
  });
angular.forEach($scope.Object2,函数(值,键){
value.directories=angular.copy($scope.Object1);
对于(var i=0;i
基本上,在将目录数组添加到对象之后,您可以在数组的开头找到所需对象的索引。删除它并将其添加回数组的开头


为什么要迭代两次?您可以只使用一个
forEach
循环和一个带分解结构的箭头函数:

angular.forEach($scope.Object2, { directories } => directories = $scope.Object1);

我有两个不同的物体,你知道的。这是一个对象数组:)你的输出将是这样的:
[{“选项”:“A/”,“目录”:[{“值”:“A/B”},{“值”:“A/B/C”},{“值”:“A/F”},{“值”:“A/”},{“选项”:“A/B”,“目录”:[{“值”:“A/B”},{“值”:“A/B/C”},{“值”:“A/F”},{“值”:“A/”},但实际输出我需要的是<“选项”{“A”},{“值”:“A/B/C”},{“值”:“A/F”},{“值”:“A/B”}]},{“选项”:“A/B”,“目录”:[{“值”:“A/B”},{“值”:“A/B/C”},{“值”:“A/F”},{“值”:“A/”}]