需要收集对象数组中的每个属性值以分隔数组

时间:2015-10-20 07:52:51

标签: angularjs underscore.js

我需要收集对象数组中的每个属性值以分离属性数组,有什么简单的方法可以做到这一点。下划线和angularjs实用程序都可以。

例如,我有一个对象数组,

 $scope.expNumArray = [];
 $scope.itemHrArray = []; 
 $scope.highReArray = [];

$scope.rowdata = [{
    "expNum": "678",    
    "itemHr": "",   
    "highRe": "C"
    }, {
    "expNum": "978",    
    "itemHr": "3",  
    "highRe": ""
}];

现在我需要有以下内容:

 $scope.expNumArray = ["678", "978"];

 $scope.itemHrArray = ["", "3"];

 $scope.highReArray = ["C",""];

2 个答案:

答案 0 :(得分:2)

你可以使用angular forEach来实现这一目标。

$scope.expNumArray = [];
 $scope.itemHrArray = []; 
 $scope.highReArray = [];



$scope.rowdata = [{
    "expNum": "678",    
    "itemHr": "",   
    "highRe": "C"
    }, {
    "expNum": "978",    
    "itemHr": "3",  
    "highRe": ""
}];

angular.forEach($scope.rowdata,function(value,key){

   $scope.expNumArray.push(value["expNum"]);
   $scope.itemHrArray.push(value["itemHr"]);
   $scope.highReArray.push(value["highRe"]);

});

答案 1 :(得分:0)

您可以使用下划线的每个功能循环

 $scope.rowdata

并附加到其他三个数组中的每一个。比Javascript for循环更清洁。关于利用下划线的This article也可能是有意义的。