2017-01-02 6 views
1

私のようなJSON構造を持っているにいないが、我々はforEach.can誰かが..私がこのようにしようとしていた助ける使用して、すべてのマークを追加することができますどのように、JSON

$scope.inputs.data=[{name:"sam",marks:"100"},{name:"don", 
marks:"200"}] 

を特定の値を追加するために、それぞれに使用する方法運

var i=0; 
angular.forEach($scope.inputs.data,function(value){ 
var sum=o; 
var tot=sum+value.marks[i]; 
i++  
}; 

答えて

0

Array#reduceを使用して、プロパティの合計値を合計することができます。

var $scope = { inputs: { data: [{ name: "sam", marks: "100" }, { name: "don", marks: "200" }] } }, 
 
    total = $scope.inputs.data.reduce(function (r, o) { 
 
     return r + +o.marks; 
 
    }, 0); 
 

 
console.log(total);

Array#forEach

var $scope = { inputs: { data: [{ name: "sam", marks: "100" }, { name: "don", marks: "200" }] } }, 
 
    total = 0; 
 

 
$scope.inputs.data.forEach(function (o) { 
 
    total += +o.marks; 
 
}); 
 

 
console.log(total);

+1

'番号(o.marks)' –

+0

@Ninaは、私はちょうど2を与えましたjsonの配列オブジェクト..しかし、私たちは固定されていません。私はそれぞれのために使用していました。それぞれを – user7350714

+0

@ user7350714のために使用してください。編集を参照してください。 –

0

$scope.inputs.data=[{name:"sam",marks:"100"},{name:"don",marks:"200"}]; 
 

 
var sum=0; 
 
$scope.inputs.data.forEach(function(value){ 
 

 
sum=sum+Number(value.marks); 
 
    
 
});
とソリューションここで angular.foreachで210

0

、あなたが行うことができ、

$scope.tot = 0; 
angular.forEach($scope.inputs.data, function(value) { 
$scope.tot += parseInt(value.marks); 
}); 

DEMO

<html> 
 
<head> 
 
    <title>angular material switch</title> 
 
    <link rel="stylesheet" href="//rawgit.com/angular/bower-material/master/angular-material.css"> 
 
</head> 
 
<body> 
 
    <div ng-app="app" ng-controller="ctrl"> 
 
    Total is : {{tot}} 
 
    </div> 
 
    <!-- Angular Material Dependencies --> 
 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.js"></script> 
 
<script> 
 
    var app = angular.module('app', []); 
 
    app.controller("ctrl", function($scope) { 
 
      $scope.inputs= {}; 
 
      $scope.inputs.data = [{ 
 
      name: "sam", 
 
      marks: "100" 
 
      }, { 
 
      name: "don", 
 
      marks: "200" 
 
      }]; 
 
      $scope.tot = 0; 
 
      angular.forEach($scope.inputs.data, function(value) { 
 
       $scope.tot += parseInt(value.marks); 
 

 
      }); 
 
      }); 
 
    </script> 
 
</body> 
 

 
</html>

関連する問題