2017-02-24 78 views
-1
$scope.data=[ 
    { 
    "vpay": [ 
     { 
     "count": 34 
     }, 
     { 
     "count": 21 
     }, 
     { 
     "count": 12 
     } 
    ] 
    }, 
    { 
    "mastercard": [ 
     { 
     "count": 0 
     }, 
     { 
     "count": 89 
     }, 
     { 
     "count": 9 
     } 
    ] 
    } 
]; 

我怎样才能retreive只有每个vpay &万事达即第一个条目计数= 34 &计数以类似的方式以有效的方式第二&第三条目= 0 &?如何检索每个键的唯一第一个元素?

+0

哪种输出格式? –

+0

第一级对象中可能有多少个子对象? –

+0

[ { “计数”:34 },{ “计数”:110 },{ “计数”:21 } ]; – rozer

回答

1

您可以迭代数组和键并在同一个索引上添加值。

var $scope = { data: [{ vpay: [{ count: 34 }, { count: 21 }, { count: 12 }] }, { mastercard: [{ count: 0 }, { count: 89 }, { count: 9 }] }] }, 
 
    result = $scope.data.reduce(function (r, o) { 
 
     Object.keys(o).forEach(function (k) { 
 
      o[k].forEach(function (p, i) { 
 
       r[i] = r[i] || {}; 
 
       Object.keys(p).forEach(function (l) { 
 
        r[i][l] = (r[i][l] || 0) + p[l]; 
 
       });      
 
      }); 
 
     }); 
 
     return r; 
 
    }, []); 
 

 
console.log(result);

+0

如何获得输出为\t [{“count”:34},{“count”:110},{“count”:21}];即每个键的第一,第二和第三项的总和? – rozer

+0

@rozer,它现在对你有用吗? –

+1

它为我工作。 – rozer

0
var results = []; 
for(var i = 0; i < $scope.data.length; i++){ 
for(key in data[i]){ 
    results.push(data[i][key][0]); 
} 
} 
+0

如何获得[{“count”:34},{“count”:110},{“count”:21}];即每个键的第一,第二和第三项的总和? – rozer

0
var firstElements = $scope.data.reduce(function(res, o) { 
    return res.concat(Object.keys(o).map(function(k) { 
    return o[k][0]; 
    })); 
}, []); 

或者使用箭头功能

var firstElements = $scope.data.reduce((res, o) => res.concat(Object.keys(o).map(k => o[k][0])), []); 

工作snippett:

var $scope = {}; 
 

 
$scope.data = [{"vpay":[{"count":34},{"count":21},{"count":12}]},{"mastercard":[{"count":0},{"count":89},{"count":9}]}]; 
 

 
var firstElements = $scope.data.reduce((res, o) => res.concat(Object.keys(o).map(k => o[k][0])), []); 
 

 
console.log(firstElements);

0

您可以通过两种方法

方法1做到这一点:如下:

Object.keys(data)[0]; 

方法2:如下:

for (o in obj) { ... } 

希望它帮助你:)。

相关问题