如何平均数组中高于阈值的元素?
How do I average the elements that are above a threshold in an array?
我正在尝试计算数组中所有大于 150 的元素的平均值。我不知道如何解决所有问题并输出正确的数字。有人可以帮忙吗?
function averageBig(list) {
var sum = 0;
for (var i = 0; i < list.length && 150; i++) {
if (list.length > 1000); {
sum += list[i]
}
}
return (sum / list.length);
}
function averageBig(list) {
var sum = 0;
for (var i = 150; i <= list.length; i++) {
sum += list[i]
}
return (sum / list.length);
}
我假设你说的150就是从第150位开始的数据
对列表中大于 150 的所有项目取平均值。
function averageBig(list) {
let sum = 0;
let items = 0;
for (let i = 0; i < list.length; i++) {
if (list[i] > 150) {
sum += list[i];
items++;
}
}
return (sum / items);
}
const numbers = [ 10, 20, 50, 100, 150, 200, 300];
console.log(averageBig(numbers));
console.log((200 + 300) / 2);
你可以这样做:
function averageBig(list) {
let listFiltered = list.filter(element => element > 150);
let sum = 0;
for (let i = 0; i < listFiltered.length; i++) {
sum += listFiltered[i]
}
return (sum / listFiltered.length);
}
这将过滤列表以仅获取超过 150 的元素并将其存储在名为 listFiltered
的变量中。然后循环遍历所有这些值并将其与新的 listFiltered 长度进行比较。如果您尝试根据初始 list
长度对其进行平均,您将使用的长度也包含小于 150 的值,因此会扭曲结果。
对数组中所有大于150的元素进行平均
使用过滤器提取项目 > 150
使用reduce求和
计算平均值
const entries = [10,23,151,200,233,244,299,100,123];
const filtered = entries.filter(e=>e > 150);
const sum = filtered => filtered.reduce((a,b) => a + b, 0)
const average = sum(filtered) / (filtered.length);
console.log(average);
这个函数return数组元素之和大于num,然后你可以简单地将它除以arr.length。
function sumGreaterThan(arr, num) {
return arr.reduce((sum, cur) => {
if (cur > num) return sum + cur;
return sum;
}, 0);
}
我正在尝试计算数组中所有大于 150 的元素的平均值。我不知道如何解决所有问题并输出正确的数字。有人可以帮忙吗?
function averageBig(list) {
var sum = 0;
for (var i = 0; i < list.length && 150; i++) {
if (list.length > 1000); {
sum += list[i]
}
}
return (sum / list.length);
}
function averageBig(list) {
var sum = 0;
for (var i = 150; i <= list.length; i++) {
sum += list[i]
}
return (sum / list.length);
}
我假设你说的150就是从第150位开始的数据
对列表中大于 150 的所有项目取平均值。
function averageBig(list) {
let sum = 0;
let items = 0;
for (let i = 0; i < list.length; i++) {
if (list[i] > 150) {
sum += list[i];
items++;
}
}
return (sum / items);
}
const numbers = [ 10, 20, 50, 100, 150, 200, 300];
console.log(averageBig(numbers));
console.log((200 + 300) / 2);
你可以这样做:
function averageBig(list) {
let listFiltered = list.filter(element => element > 150);
let sum = 0;
for (let i = 0; i < listFiltered.length; i++) {
sum += listFiltered[i]
}
return (sum / listFiltered.length);
}
这将过滤列表以仅获取超过 150 的元素并将其存储在名为 listFiltered
的变量中。然后循环遍历所有这些值并将其与新的 listFiltered 长度进行比较。如果您尝试根据初始 list
长度对其进行平均,您将使用的长度也包含小于 150 的值,因此会扭曲结果。
对数组中所有大于150的元素进行平均
使用过滤器提取项目 > 150
使用reduce求和
计算平均值
const entries = [10,23,151,200,233,244,299,100,123];
const filtered = entries.filter(e=>e > 150);
const sum = filtered => filtered.reduce((a,b) => a + b, 0)
const average = sum(filtered) / (filtered.length);
console.log(average);
这个函数return数组元素之和大于num,然后你可以简单地将它除以arr.length。
function sumGreaterThan(arr, num) {
return arr.reduce((sum, cur) => {
if (cur > num) return sum + cur;
return sum;
}, 0);
}