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

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

查找數組中有多少項大于或小于給定數字 Javascript

查找數組中有多少項大于或小于給定數字 Javascript

婷婷同學_ 2023-07-14 10:18:24
 let numbers = [2, 2, 6, 10];const findAvarage = (numbers) => {  let total = 0;  let checkIntegers = numbers.every(i => !Number.isInteger(i))  if (checkIntegers = true) {    for(let i = 0; i < numbers.length; i++) {    total += numbers[i];  }  let avg = total / numbers.length;   return avg  } else {    return "Only integers allowed"  }  const compareNumbers = (numbers) => {    }在此代碼中,我計算數組中給定數字的平均值,現在我想使用第二個函數查找數組中有多少數字大于平均數我嘗試使用 find 方法,但沒有成功,請問有什么解決方案嗎?
查看完整描述

5 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

您可以使用filter函數過濾掉大于平均值的數字。

const avg = findAvarage(numbers)
const count = numbers.filter(number => number > avg).length


查看完整回答
反對 回復 2023-07-14
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

Javascript 沒有提供很多可用于數組的擴展方法,您只有一些基本操作。如果您將此需求轉化為數組的擴展,您可以在任何地方使用它們而無需調用函數,您的代碼會更干凈,您可以執行以下操作:


Object.defineProperties(Array.prototype, {

    count: {

        value: function(value) {

            if(isNan(value)) return NaN;

            return this.filter(x => x>=value).length;

        }

    },

    average:{

        value:function(){

            let total = 0;

            if(!this.every(i => Number.isInteger(i))) 

               return NaN;

            for(let i = 0; i < numbers.length; i++) {

               total += numbers[i];

            }

            return total/this.length;

        }

    }

});

你可以像這樣使用它作為你的例子


var result = numbers.count(numbers.average())


查看完整回答
反對 回復 2023-07-14
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

 const compareNumbers = (numbers) => {

   const avg = findAvarage(numbers);

   let greater = 0;

   

   numbers.forEach((num) => { if (num > avg) greater++; });


   return greater;

 }


查看完整回答
反對 回復 2023-07-14
?
www說

TA貢獻1775條經驗 獲得超8個贊

這邊走 ?


const findAvarage=(a,b,c,d) => [a,b,c,d].reduceRight((t,n,i,a)=>

        {

        t += n

        if (!i) t /= a.length

        return t

        },0)

  ,   greaterOrEqualCount = (a,b,c,d) => 

        {

        let avg = findAvarage(a,b,c,d)

        return [a,b,c,d].reduce((r,n)=>r+(n<avg?0:1),0) 

        } 

    


console.log("count ",greaterOrEqualCount(2,2,6,10))


查看完整回答
反對 回復 2023-07-14
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

你可以使用filter或reduce來解決它


let numbers = [2, 2, 6, 10];


function countNumbers(number){

  return numbers.filter(num=> num>=number).length;

}



function countNumbers2(number){

  return numbers.reduce((count,item)=>count+(item>=number),0)

}



console.log(countNumbers(7));

console.log(countNumbers2(3))


查看完整回答
反對 回復 2023-07-14
  • 5 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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