我有问题添加一个数组的所有元素以及平均它们。我将如何做到这一点,并实现它与我目前的代码?元素的定义如下所示。
<script type="text/javascript">
//<![CDATA[
var i;
var elmt = new Array();
elmt[0] = "0";
elmt[1] = "1";
elmt[2] = "2";
elmt[3] = "3";
elmt[4] = "4";
elmt[5] = "7";
elmt[6] = "8";
elmt[7] = "9";
elmt[8] = "10";
elmt[9] = "11";
// Problem here
for (i = 9; i < 10; i++){
document.write("The sum of all the elements is: " + /* Problem here */ + " The average of all the elements is: " + /* Problem here */ + "<br/>");
}
//]]>
</script>
HTML内容的平均值
使用jQuery或Javascript的querySelector,您可以直接访问格式化的数据…例子:
<p>Elements for an average: <span class="m">2</span>, <span class="m">4</span>,
<span class="m">2</span>, <span class="m">3</span>.
</p>
因此,使用jQuery
var A = $('.m')
.map(function(idx) { return parseInt($(this).html()) })
.get();
var AVG = A.reduce(function(a,b){return a+b}) / A5.length;
查看其他4种方法(!)来访问itens和平均它:http://jsfiddle.net/4fLWB/
我在我的个人库中使用这些方法:
Array.prototype.sum = Array.prototype.sum || function() {
return this.reduce(function(sum, a) { return sum + Number(a) }, 0);
}
Array.prototype.average = Array.prototype.average || function() {
return this.sum() / (this.length || 1);
}
编辑:
要使用它们,只需询问数组的和或平均值,如下所示:
[1,2,3].sum() // = 6
[1,2,3].average() // = 2
在支持es6的浏览器中,这个填充可能会有帮助。
Math.sum = (...a) => Array.prototype.reduce.call(a,(a,b) => a+b)
Math.avg = (...a) => Math.sum(...a)/a.length;
你可以在Math.sum和Math.sum之间共享相同的调用方法。avg和Math。马克斯,如
var maxOne = Math.max(1,2,3,4) // 4;
你可以用数学。总和为
var sumNum = Math.sum(1,2,3,4) // 10
或者如果你有一个数组要求和,你可以使用
var sumNum = Math.sum.apply(null,[1,2,3,4]) // 10
就像
var maxOne = Math.max.apply(null,[1,2,3,4]) // 4
我认为这可能是用for循环和函数计算平均值的直接解决方案。
var elmts = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
function average(arr) {
var total = 0;
for (var i = 0; i < arr.length; i++) {
total += arr[i];
}
console.log(Math.round(total/arr.length));
}
average(elmts);