3 回答

TA貢獻1850條經驗 獲得超11個贊
使用 reduce 求平均值:
const average = values.reduce((acc, cur) => acc + cur) / values.length
然后你可以運行 run 你的其他函數:
values.filter(v => v > average)

TA貢獻1866條經驗 獲得超5個贊
你可以這樣做:
const values = [5, 6, 10, 4, 3, 7, 1]
const sum = values.reduce((a, b) => {
return a + b;
}, 0);
const average = sum / values.length + 1
console.log(average)
在這個 reduce 函數中,你有 2 個參數。第一個a是當前值。第二個b蓄能器。
像這樣減少工作的平均功能:
在第一次迭代中:
累加器 (a) 等于 0
當前值 (b) 等于 5(數組的第一個索引)
5 被退回
在第二次迭代中:
累加器 (a) 等于 5(它是前一個操作的結果)
當前值 (b) 等于 6(數組的第二個索引)
11 返回 (a + b)
等等 ...
如果你仔細觀察,最后(大括號之后)你有一個零。這是初始值,如果您決定從 0 開始計數,則無需指定。但如果您希望可以指定 8,則在第一個循環中累加器的值等于 8。
在這種情況下,第一次迭代等于:
累加器 (a) 等于 8
當前值 (b) 等于 5
13 被退回
最后總和將等于 44。

TA貢獻1906條經驗 獲得超10個贊
由于您需要在此作業中使用 .reduce(),我將執行以下操作:
const values = [5, 6, 10, 4, 3, 7, 1];
function averageValues(v) {
const reducer = (accumulator, currentValue) => accumulator + currentValue;
return v.reduce(reducer)/v.length;
}
const average = averageValues(values);
console.log('Average = ' + average);
console.log(values.filter(v => v > average))
添加回答
舉報