JavaScript 如何将数组中每个元素映射到一个值后计算平均值
给定一个数组,任务是在将每个元素映射到一个值后计算数组的平均值。
Input : arr=[2, 3, 5, 6, 7]
Output: 4.6
Explanation : (2+3+5+6+7)/5 = 4.6
Input : [5,7,2,7,8,3,9,3]
Output: 5.5
Explanation : (5+7+2+7+8+3+9+3)/8 = 5.5
方法1
- 使用foreach()循环遍历数组元素。
- 将每个元素的和存储在一个变量中。
- 所有元素的平均值将为sum/length,其中length是给定数组的大小。
Index.js
<script>
arr = [2, 3, 5, 6, 7];
// Function to calculate the average of numbers
function avg(arr) {
var sum = 0;
// Iterate the elements of the array
arr.forEach(function (item, idx) {
sum += item;
});
// Returning the average of the numbers
return sum / arr.length;
}
console.log(avg(arr));
</script>
输出:
4.6
方法2
- 使用for循环迭代数组中的数字
- 使用 ParseInt() 函数将数字解析为十进制格式
- 将数字的和存储在一个变量中
- 所有元素的平均值为和除以长度,其中长度是给定数组的大小
Index.js
<script>
arr = [2, 3, 5, 6, 7];
var sum = 0;
// Iterating the elements of the loop
for (var i = 0; i < arr.length; i++) {
// Store the sum of all numbers
sum += parseInt(arr[i], 10);
}
// Taking the average
var avg = sum / arr.length;
console.log(avg);
</script>
输出:
4.6
方法3
使用reduce()函数
- 在这种方法中,我们将数组中的两个数字替换为它们在原始数组中的和。
- reduce()函数返回一个单一的值,即数组中所有数字的和。
- 将返回值存储在一个变量中(使用sum变量)。
- 所有元素的平均值将是sum/length,其中length是给定数组的大小。
Index.js
<script>
var arr = [1, 2, 3, 4];
// Callback function calculating
// the sum of two numbers
function check(a, b) {
return a + b;
}
// Reducing the numbers of the array
var sum = arr.reduce(check);
// Calculating the average of the numbers
var avg = sum / arr.length;
console.log(avg);
</script>
输出:
2.5