Javascript “中有关array.average()功能的混淆”;var avg=array.average();

Javascript “中有关array.average()功能的混淆”;var avg=array.average();,javascript,arrays,function,Javascript,Arrays,Function,干杯,伙计们。我被要求在学习挑战中使用这段代码,我不知道如何处理“array.average()”部分,因为它不是一个函数 我被问到的是: var array = [5,44,23,11,55,68]; var avg = array.average(); console.log(avg); 到目前为止,我已经解决了数组的平均问题,如下所示: function average(){ var total = 0; for (var i = 0; i < array.length; i

干杯,伙计们。我被要求在学习挑战中使用这段代码,我不知道如何处理“array.average()”部分,因为它不是一个函数

我被问到的是:

var array = [5,44,23,11,55,68];
var avg = array.average();
console.log(avg);
到目前为止,我已经解决了数组的平均问题,如下所示:

function average(){
 var total = 0;
  for (var i = 0; i < array.length; i++) {
   total += array[i];
  }
 var avg = total / array.length;
}
函数平均值(){
var合计=0;
对于(var i=0;i

欢迎任何和所有更正。这是100%基于学习的,因此一切都有帮助。

首先将函数附加到数组对象,然后确保在其末尾返回一个值:

var数组=[5,44,23,11,55,68];
array.average=()=>{
var合计=0;
对于(var i=0;i控制台日志(平均值)首先将函数附加到数组对象,然后确保在其末尾返回一个值:

var数组=[5,44,23,11,55,68];
array.average=()=>{
var合计=0;
对于(var i=0;i控制台日志(平均值)
假设您需要将其添加到Array.prototype中(这是个坏主意),请使用
Object.defineProperty
将其添加为不可枚举的,并且不会与其他本机方法冲突:

var数组=[5,44,23,11,55,68];
Object.defineProperty(Array.prototype,'average'{
可枚举:false,
值:()=>array.reduce((a,b)=>a+b)/array.length
});

console.log(array.average())
假设需要将其添加到array.prototype中(这是个坏主意),请使用
Object.defineProperty
将其添加为不可枚举的,并且不会与其他本机方法冲突:

var数组=[5,44,23,11,55,68];
Object.defineProperty(Array.prototype,'average'{
可枚举:false,
值:()=>array.reduce((a,b)=>a+b)/array.length
});

console.log(array.average())
average
函数添加到
array.prototype

var-arr=[5,44,23,11,55,68];
Array.prototype.average=函数(){
返回this.reduce(函数(acc,cur){return(acc+cur);},0)/this.length;
}
var平均值=平均值();

控制台日志(平均值)
平均值
函数添加到
数组。原型

var-arr=[5,44,23,11,55,68];
Array.prototype.average=函数(){
返回this.reduce(函数(acc,cur){return(acc+cur);},0)/this.length;
}
var平均值=平均值();

控制台日志(平均值)我想你想把平均值函数添加到数组原型中,你想进一步解释一下吗?你可能在钱上。编辑:实际上我只是在谷歌上搜索了一下。所以我应该在函数数组(5,44,23,11,55,68)的行上写一些东西,对吗?或者应该是函数数组(){this.5等等?在解释原型方面做得比我以前任何时候都好我猜你想把平均函数添加到数组原型中,介意进一步解释一下吗?你可能很有钱。编辑:我实际上只是在谷歌上搜索了一下。所以我应该在函数数组的行上写点东西(5,44,23,11,55,68),对吗?还是应该是函数数组(){this.5等等?在解释原型方面做得比我以前任何时候都好。我发现这是最干净的方式,但是它与原型选项有何不同?它是相同的/相似的吗?变异本机原型几乎被普遍认为是一种糟糕的做法-这就是为什么我们要这样做。最好设置自定义函数在您的对象上,或者,更好的是,在对象周围制作一个包装器,并为包装器提供一个
average
方法。(可以修改您自己创建的对象/类)顺便说一句,Array.prototype更准确地称为。术语“本机对象”最后在中定义并包含内置对象和其他可能由javascript代码创建的对象,因此在
var a={}
中,a是本机对象。;-)我发现这是最干净的方法,但它与原型选项有什么不同?是相同的/相似的吗?变异本机原型几乎被普遍认为是一种可怕的做法-这就是为什么我们要这么做。最好在对象上设置自定义函数,或者,更好的是,在对象周围制作一个包装器,并给出e包装一个
average
方法(你自己创建的对象/类可以改变),顺便说一句,Array.prototype被更正确地称为a。术语“本机对象”上一次是在中定义的,包括内置对象和其他可能由javascript代码创建的对象,所以在
var a={}
,则a是本机对象。;-)