2017-02-24 76 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) { ... } 

希望它幫助你:)。

相關問題