[英]JavaScript: calculate the average of an odd number
我想從數字列表中計算奇數的平均值。 我有一個開始代碼來計算平均值,但是我不知道如何從列表中僅選擇奇數?
這是我的代碼:
var numberArray = [1,2,3,4,5,6], thisTotal=0,thisAverage=0;
for (var i=0; i<numberArray.length; i++) {
thisTotal += numberArray[i];
}
thisAverage = (thisTotal/numberArray.length);
alert(thisAverage)
var numberArray=[1,2,3,4,5,6], thisAverage=0,oddlength=0; for(var i=0;i<numberArray.length;i++) { if(numberArray[i]%2!==0){ thisAverage+=numberArray[i]; oddlength++; } } thisAverage=(thisAverage/oddlength); alert(thisAverage)
您可以使用過濾器函數僅返回奇數:
var oddArray = numberArray.filter(function(val) {
return val % 2 !== 0;
});
完整示例:
var numberArray = [1, 2, 3, 4, 5, 6]; var thisTotal = 0; var thisAverage = 0; var oddArray = numberArray.filter(function(val) { return val % 2 !== 0; }); console.log(oddArray); // [1, 3, 5] var thisTotal = oddArray.reduce(function(accumulator, currentValue) { return accumulator + currentValue; }); console.log(thisTotal); // 1 + 3 + 5 => 9 var thisAverage = thisTotal / oddArray.length; console.log(thisAverage); // 9 / 3 => 3
好吧,您可以由此獲得想要的東西。
var numberArray=[1,2,3,4,5,6], thisTotal=0,thisAverage=0;
for(var i=0; i < 3; i++) {
thisTotal += numberArray[i * 2];
thisAverage= (thisTotal/numberArray.length);
}
console.log(thisAverage);
或者,如果您需要一般解決方案 ,請使用此方法。
var numberArray=[1,2,3,4,5,6,7,8,...on and on], thisTotal=0,thisAverage=0;
for(var i=0; i < Math.ceil(numberArray.length() / 2); i++) {
thisTotal += numberArray[i * 2];
thisAverage= (thisTotal/numberArray.length);
}
console.log(thisAverage);
希望我的代碼對您有所幫助:)
您可以使用函數reduce
添加和計數。
var numberArray = [1, 2, 3, 4, 5, 6], result = numberArray.reduce((a, n) => { if (n % 2 !== 0) { a.sum += n; a.count++; } return a; }, {sum: 0, count: 0}), average = result.sum / result.count; console.log(average);
假設數字位於一個數組中,則可以執行以下操作:
var numbers = [1, 2, 3, 4, 5, 6];
var info = numbers.filter(function(n) { return n % 2 !== 0})
.reduce(function(acc, item) {
return {sum: acc.sum + item, count: acc.count + 1}
}, {sum: 0, count: 0});
var avg = info.sum / info.count;
本示例使用filter
和reduce
方法,這些方法是聲明性的並且更清楚。 filter
返回一個新數組,該數組中的項目的函數將返回true
,然后reduce
,對於每個項目,更新一個“累加器”。 累加器可以是任何東西,在這種情況下是具有數字和它們的計數之和的對象。 對於每個項目,我們將當前數字添加到sum
屬性,並將1添加到count
。 最后,我們只是按sum
來count
sum
。
var acc = 0, oddCount = 0;
for(var i = 0; i < numberArray.length; i++) {
if(numberArray[i] % 2 !== 0) {
acc += numberArray[i];
oddCount++;
}
}
return acc / oddCount;
您可以創建一個新數組並將奇數值存儲在該數組中,然后將邏輯應用於該數組。
var a=[1,2,3,4,5,6,10,11]; var ar=[]; for (var i = 0; i < a.length; i++) { if(a[i] % 2 !== 0) { ar.push(a[i]); } } console.log(ar);
var numberArray=[1,2,3,4,5,6,7,8];
var count = 0;
var result = 0;
for (let i = 0; i <= (numberArray.length-1); i++)
{
if (numberArray[i] % 2 != 0)
{
result += numberArray[i];
count++;
}
}
alert(result / count);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.