如何对数组中大于150的元素求和?

时间:2019-12-18 02:33:42

标签: javascript arrays loops sorting average

我正在尝试对数组中所有大于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); 
    }

4 个答案:

答案 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的所有元素求平均

  1. 使用过滤器提取> 150的项目

  2. 使用reduce对它们求和

  3. 计算平均值

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);