我正在尝试对数组中所有大于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);
}
答案 0 :(得分:1)
平均列表中所有大于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);
答案 1 :(得分:1)
您可以这样做:
function averageBig(list) {
let listFiltered = list.filter(element => element > 150);
var sum = 0;
for (var i = 0; i < listFiltered.length; i++) {
sum += listFiltered[i]
}
return (sum / listFiltered.length);
}
这将过滤列表以仅获取超过150个元素,并将其存储在名为listFiltered
的变量中。然后,将遍历所有这些值,并将其与新的listFiltered长度进行比较。如果您尝试根据初始list
长度进行平均,则所使用的长度也包含小于150的值,因此会使结果倾斜。
答案 2 :(得分:0)
function averageBig(list) {
var sum = 0;
for (var i = 150; i <= list.length; i++) {
sum += list[i]
}
return (sum / list.length);
我假设您所讨论的150是从150以上开始的数据。
答案 3 :(得分:0)
对数组中大于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);