繁体   English   中英

Dynamics CRM JavaScript 平均值

[英]Dynamics CRM JavaScript Average

我在一条记录上有三 (3) 个小数字段。 我需要添加一个额外的 Decimal 字段来生成这些值的平均值。 问题是我不知道如何解释缺失值的记录。 如果记录中只有 2 个值,我需要 JavaScript 来平均这 2 个值并忽略第三个 Decimal 字段的 NULL 值。

然后,此函数将运行这三个十进制字段的 onChange。

任何帮助,将不胜感激!

尝试这个:

 function average(array) { var averageArray=array.reduce(function(accumulator, currentValue) { return [accumulator[0]+currentValue, accumulator[1]+(currentValue!=null)]; }, [0,0]); return averageArray[0]/averageArray[1]; } console.log(average([12, null])); // 12 console.log(average([12, null, 14])); // 13 console.log(average([12, null, null, null, 14, 16])); // 14

在“较旧的”javascript 中:

 function average(array) { var sum=0, count=0; for(var i=0; i<array.length; i++) { if(array[i]!=null) { sum+=array[i]; count++; } } return sum/count; } console.log(average([12, null])); // 12 console.log(average([12, null, 14])); // 13 console.log(average([12, null, null, null, 14, 16])); // 14

这是使用 ES6 特性的单线平均值

 const avg = (arr) => arr // filter out falsy values (except 0) and not number strings .filter(i => i && +i || i == 0) // accumulate remaining values with Array.reduce .reduce((a, c, _, o) => a + +c / o.length, 0); console.log(avg([null, null, '','asd'])); // 0 console.log(avg([10, null, ])); // 10 console.log(avg([10, '0', null])); // 5 console.log(avg(['10', 12, '14'])) // 12 console.log(avg(['10', 11, 0])); // 7

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM