Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:计算奇数的平均值_Javascript_Arrays_Numbers_Average - Fatal编程技术网

JavaScript:计算奇数的平均值

JavaScript:计算奇数的平均值,javascript,arrays,numbers,average,Javascript,Arrays,Numbers,Average,我想计算一组数字中奇数的平均值。我有一个开始代码来计算平均数,但我不知道如何从列表中只选择奇数 这是我的密码: 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); aler

我想计算一组数字中奇数的平均值。我有一个开始代码来计算平均数,但我不知道如何从列表中只选择奇数

这是我的密码:

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],thisTotal=0,thisAverage=0;
对于(var i=0;i
var acc=0,ODDCUNT=0;
对于(变量i=0;i
var numberArray=[1,2,3,4,5,6],此平均值=0,oddlength=0;
对于(var i=0;i您可以使用函数仅返回奇数:

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(函数(val){
返回值%2!==0;
});
console.log(oddArray);//[1,3,5]
var thisTotal=oddArray.reduce(函数(累加器,currentValue){返回累加器+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],thisTotal=0,thisAverage=0;
对于(变量i=0;i<3;i++){
这个总数+=numberArray[i*2];
thisAverage=(thisTotal/numberArray.length);
}
console.log(这个平均值);
或者,如果您想要通用解决方案,请使用此选项

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);
var numberArray=[1,2,3,4,5,6,7,8,…on和on],thisTotal=0,thisAverage=0;
for(var i=0;i

希望我的代码有帮助:)

您可以使用函数
reduce
进行添加和计数

var numberArray=[1,2,3,4,5,6],
结果=numberArray.reduce((a,n)=>{
如果(n%2!==0){
a、 总和+=n;
a、 计数++;
}
返回a;
},{sum:0,count:0}),
平均值=result.sum/result.count;

console.log(平均);
假设数字在一个数组中,您可以执行以下操作:

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
,对于每个项目,更新一个“累加器”。累加器可以是任何内容,在这种情况下,累加器是一个包含数字及其计数总和的对象。对于每个项目,我们将当前数字添加到
总和中属性并将1添加到
count
。最后,我们只需通过
count
sum
进行设置并完成。

您可以创建一个新数组并在该数组中存储奇数值,然后您可以将逻辑应用于该数组。
var a=[1,2,3,4,5,6,10,11];
var-ar=[];
对于(变量i=0;i
var numberArray=[1,2,3,4,5,6,7,8]; var计数=0; var结果=0;
对于(让我=0;我请完整地分享你的代码如何更改为
i++=2
而不是@tipsfedora所说的
i++
,但然后除以奇数,而不是
numberArray.length
@tipsfedora你的评论将生成奇数索引,而不是奇数。假设列表更改为除1奇数以外的所有偶数,并且你的解决方案失败了。
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;
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);