我试图获取所有高于给定数组平均值的数字。 (这进入HTML页面,因此与document.write一起使用 这是我写的:
sumAndBigger(arrayMaker());
function sumAndBigger(array) {
for (i = 0; i < array.length; i++) {
sum += array;
}
var equalAndBigger = []
var avg = sum / array.length;
for (i = 0; i < array.length; i++) {
if (array[i] > avg) {
equalAndBigger.push(array[i])
}
}
document.write('The numbers are: ' + equalAndBigger)
}
function arrayMaker() {
var array = [];
for (i = 0; i < 5; i++) {
var entrie = +prompt('Enter a number: ');
array.push(entrie)
}
return array;
}
这似乎不起作用..我在这里做什么错了?
谢谢!
答案 0 :(得分:2)
好吧,所以我在这里给您提供一线代码,以从数组中获取所有“严格大于”平均值的元素
let array = [1, 2, 3, 4, 5]
let allNums = array.filter(v => v > array.reduce((x, y) => x + y) / array.length);
说明
array.reduce((x, y) => x + y)
→数组中所有元素的总和array.reduce((x, y) => x + y) / array.length
→得到平均值输出
[4, 5]
更多详细代码
function getAverage(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum / arr.length;
}
function getGreaterThanAverage(arr) {
let avg = getAverage(arr);
let numbers = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] > avg) {
numbers.push(arr[i]);
}
}
return numbers;
}