亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有 Reduce 和 Filter 的數組

帶有 Reduce 和 Filter 的數組

陪伴而非守候 2021-11-25 19:26:18
我有一個問題。我正在學習 JavaScript,我是 StackOverflow 上的新手。所以,如果我有一個Array = [ 7, 5, 6, 1, 3, 7] 如何使用 Filter 和 Reduction 函數顯示該數組的值大于這些數字的平均值?我已經這樣做了const values = [5, 6, 10, 4, 3, 7, 1]function averageValues(v) {    let sum = 0    for(let i = 0; i < v.length; i++){        sum += v[i]    }    return sum/v.length}const average = averageValues(values)console.log('Average = ' + average)console.log(values.filter(function(v){    return v > average}))
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

使用 reduce 求平均值:

const average = values.reduce((acc, cur) => acc + cur) / values.length

然后你可以運行 run 你的其他函數:

values.filter(v => v > average)


查看完整回答
反對 回復 2021-11-25
?
心有法竹

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。


查看完整回答
反對 回復 2021-11-25
?
隔江千里

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


查看完整回答
反對 回復 2021-11-25
  • 3 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號