通过比较父数组

时间:2015-04-22 09:13:01

标签: javascript arrays for-loop

我有一个对象的arrray,它再次包含父对象的id: 例如: -

$scope.result=[
{
    "id": 1,
    "name": ABC,
    "type": PQR,
    "parentId": 2
},
{
    "id": 2,
    "name": ABC,
    "type": PQR,
    "parentId": 1
}]

我想将此JSON转换为以下版本,我将使用parentObject代替parentId的

$scope.result=[
    {
        "id": 1,
        "name": ABC,
        "type": a,
        "parentId": {
            "id": 2,
            "name": PQR,
            "type": b,
            "parentId": 1
        }
    },
    {
        "id": 2,
        "name": PQR,
        "type": b,
        "parentId": {
            "id": 1,
            "name": ABC,
            "type": a
        }
    }
]

任何人都可以帮助我进行这种转换..

1 个答案:

答案 0 :(得分:1)

假设parentId将引用一个元素

angular.forEach($scope.result, function(result) {
   var obj = $scope.result.filter(function(ele) {
         return result.parentId === ele.id;
   })[0];
   result.parentId = obj;
});

由于您的代码不包含angularjs,我在这里使用Array.prototype.forEach

$scope.result.forEach(function(result) {
   var obj = $scope.result.filter(function(ele) {
         return result.parentId === ele.id;
   })[0];
   result.parentId = obj;
});