显示 angular 指令中的最大整数之和
Display sum of greatest integer in angular directive
我正在尝试创建一个指令来查找响应数据中最大整数的总和。
指令:-
.filter('sumByKey', function() {
return function(data, key) {
if (typeof(data) === 'undefined' || typeof(key) === 'undefined') {
return 0;
}
var sum = 0;
for (var i = data.length - 1; i >= 0; i--) {
sum += parseInt(data[i][key]);
}
return sum;
};
在上面我可以对 data
中存在的总值求和。
有一个 javascript 函数可以计算找到最大值并对最大值求和 示例:-
var array = [5, 5, 7,7,8,8];
var max = array[0], total = 0;
array.forEach((a)=>{
if(a==max){
total+=max;
}
else if(a>max){
max = total = a;
}
});
console.log("total:"+total);
所以这里 data
是我的 array
。想做同样的计算。我试图在 directive 上实现它,但出现错误。
编辑:-
.filter('sumByKey', function() {
return function(data, key) {
if (typeof(data) === 'undefined' || typeof(key) === 'undefined') {
return 0;
}
for(let child of data.DeploymentTime) {
console.log(child);
var i = child;
var array = [].slice.call(i);
var max = array, total = 0;
array.forEach((a)=>{
if(a==max){
total+=max;
}
else if(a>max){
max = total = a;
}
});
return total;
});
我收到 is not iterable
javascript 错误
根据您的代码,您正在做很多这里主要不需要的事情,下面是一个满足您要求的工作过滤器示例:
app.controller('demo', function($scope, $filter) {
$scope.value = $filter('sumByKey')([{age:1},{age:2},{age:2}],'age');
})
app.filter('sumByKey', function() {
return function(input,key) {
if (typeof(input) === 'undefined' || typeof(key) === 'undefined') {
return 0;
}
var total = 0,max = Number.MIN_SAFE_INTEGER;
angular.forEach(input,function(a){
if(a[key]==max){
total+=max;
}
else if(a[key]>max){
max = total = a[key];
}
});
return total;
}
});
我正在尝试创建一个指令来查找响应数据中最大整数的总和。
指令:-
.filter('sumByKey', function() {
return function(data, key) {
if (typeof(data) === 'undefined' || typeof(key) === 'undefined') {
return 0;
}
var sum = 0;
for (var i = data.length - 1; i >= 0; i--) {
sum += parseInt(data[i][key]);
}
return sum;
};
在上面我可以对 data
中存在的总值求和。
有一个 javascript 函数可以计算找到最大值并对最大值求和 示例:-
var array = [5, 5, 7,7,8,8];
var max = array[0], total = 0;
array.forEach((a)=>{
if(a==max){
total+=max;
}
else if(a>max){
max = total = a;
}
});
console.log("total:"+total);
所以这里 data
是我的 array
。想做同样的计算。我试图在 directive 上实现它,但出现错误。
编辑:-
.filter('sumByKey', function() {
return function(data, key) {
if (typeof(data) === 'undefined' || typeof(key) === 'undefined') {
return 0;
}
for(let child of data.DeploymentTime) {
console.log(child);
var i = child;
var array = [].slice.call(i);
var max = array, total = 0;
array.forEach((a)=>{
if(a==max){
total+=max;
}
else if(a>max){
max = total = a;
}
});
return total;
});
我收到 is not iterable
javascript 错误
根据您的代码,您正在做很多这里主要不需要的事情,下面是一个满足您要求的工作过滤器示例:
app.controller('demo', function($scope, $filter) {
$scope.value = $filter('sumByKey')([{age:1},{age:2},{age:2}],'age');
})
app.filter('sumByKey', function() {
return function(input,key) {
if (typeof(input) === 'undefined' || typeof(key) === 'undefined') {
return 0;
}
var total = 0,max = Number.MIN_SAFE_INTEGER;
angular.forEach(input,function(a){
if(a[key]==max){
total+=max;
}
else if(a[key]>max){
max = total = a[key];
}
});
return total;
}
});