首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"var avg = array.average()“中关于array.average()功能的混淆

"var avg = array.average()“中关于array.average()功能的混淆
EN

Stack Overflow用户
提问于 2018-03-26 03:38:45
回答 3查看 49关注 0票数 0

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

他们问我的是:

代码语言:javascript
复制
var array = [5,44,23,11,55,68];
var avg = array.average();
console.log(avg);

到目前为止,我已经处理了数组的平均问题如下:

代码语言:javascript
复制
function average(){
 var total = 0;
  for (var i = 0; i < array.length; i++) {
   total += array[i];
  }
 var avg = total / array.length;
}

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-26 03:42:51

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

代码语言:javascript
复制
var array = [5,44,23,11,55,68];
array.average = () => {
 var total = 0;
  for (var i = 0; i < array.length; i++) {
   total += array[i];
  }
 var avg = total / array.length;
 return avg;
}

var avg = array.average();
console.log(avg);

(避免变异本机原型)

票数 1
EN

Stack Overflow用户

发布于 2018-03-26 03:48:45

假设您需要将其添加到Array.prototype中(这是个坏主意),使用Object.defineProperty将其添加为不可枚举的,并且不会与其他本地方法发生冲突:

代码语言:javascript
复制
var array = [5,44,23,11,55,68];

Object.defineProperty(Array.prototype, 'average', {
    enumerable: false,
    value: () => array.reduce((a,b) => a + b) / array.length
});

console.log(array.average())

票数 1
EN

Stack Overflow用户

发布于 2018-03-26 03:51:01

average函数添加到Array.prototype

代码语言:javascript
复制
var arr = [5,44,23,11,55,68];

Array.prototype.average = function() { 
  return this.reduce(function(acc, cur) { return (acc + cur); }, 0) / this.length;
}

var avg = arr.average();
console.log(avg);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49483590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档