AngularJS在对象之间求和



我是AngularJS的新手,一直在构建以下内容:

app.js

$scope.inkomsten= [
    { name: 'Salaris',value:'500' },
    { name: 'Toeslag',value:'200' },
    { name: 'Inkomsten',value:'211' },
    { name: 'Weekend', value:'22' }
];
$scope.uitgiften= [
    {   name: 'eten',value:'120'},
    { name: 'kat',value:'230'},
    { name: 'schildpad', value: '300'},
    { name: 'huur', value: '200'}
];

现在我想取这两个对象的值,并将它们相互减去!因此,要么将Inkomsten的所有值相加,要么将来自Uitgiften的值相加。。然后减去或单独减去(哪个更可取……所以取uitgiften的值,然后从inkomsten中减去。)

我一直在修改它,但我似乎找不到解决方案

我希望你们能帮助


澄清:

对不起。我想要

uitgiften.value[1]+uitgiften.value[2]+uitgiften.value[3]
and then inkomsten.value[1]+inkomsten.value[2]+inkomsten.value[3]

然后这两个summ的结果将需要是CCD_ 5

由于您的值是字符串,因此需要将它们强制转换为数字。我会这么做:

var result = 0;
$scope.inkomsten.forEach(function(item){
  result += Number(item.value);
});
$scope.uitgiften.forEach(function(item){
  result -= Number(item.value);
});

由于它是一个数组,您可以向array原型添加一个函数。

$scope.inkomsten= [
   { name: 'Salaris',value:'500' },
   { name: 'Toeslag',value:'200' },
   { name: 'Inkomsten',value:'211' },
   { name: 'Weekend', value:'22' }
];
$scope.uitgiften= [
   { name: 'eten',value:'120'},
   { name: 'kat',value:'230'},
   { name: 'schildpad', value: '300'},
   { name: 'huur', value: '200'}
];
Array.prototype.sum = function (prop) {
    var total = 0;
    for ( var i = 0, _len = this.length; i < _len; i++ ) {
        total += parseInt(this[i][prop]);
    }
    return total;
}
$scope.endOutcome = $scope.inkomsten.sum("value") - $scope.uitgiften.sum("value");

Fiddle:http://jsfiddle.net/U3pVM/20778/

您可以使用数组方法reduce:

var $scope={};
$scope.inkomsten= [
    { name: 'Salaris',value:'500' },
    { name: 'Toeslag',value:'200' },
    { name: 'Inkomsten',value:'211' },
    { name: 'Weekend', value:'22' }
];
var res = $scope.inkomsten.reduce(function(total, current){
    return total + Number(current.value);
}, 0)
console.log(res)

这将为您提供一个数组的数字总和;

然后你可以对第二个数组做同样的操作,并减去两者;

好吧,你可以使用

var results=0;
for(i=0;i<$scope.inkomsten.length;i++){
      results+=Number($scope.inkomsten[i].value);
}
for(i=0;i<$scope.uitgiften.length;i++){
      results-=Number($scope.uitgiften[i].value);
}
console.log(results);

您可以在下面的代码中尝试

$scope.inkomsten= [
       { name: 'Salaris',value:'500' },
       { name: 'Toeslag',value:'200' },
       { name: 'Inkomsten',value:'211' },
       { name: 'Weekend', value:'22' }
    ];
$scope.uitgiften= [
       { name: 'eten',value:'120'},
       { name: 'kat',value:'230'},
       { name: 'schildpad', value: '300'},
       { name: 'huur', value: '200'}
    ];
$scope.sum1 = 0;
$scope.sum2 = 0;
for(i in $scope.inkomsten){
    $scope.sum1 = $scope.sum1 + parseInt($scope.inkomsten[i].value);
}
for(i in $scope.uitgiften){
    $scope.sum2 = $scope.sum2 + parseInt($scope.uitgiften[i].value);
}
$scope.endOutcome = $scope.sum1 - $scope.sum2;
alert($scope.endOutcome);

最新更新