干杯队员。我被要求让这个代码在学习挑战中工作,我不知道如何处理" 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;
}
欢迎任何和所有更正。这是基于100%的学习,所以一切都有帮助。
答案 0 :(得分:2)
首先将函数附加到数组对象,然后确保在结尾处返回一个值:
Order
(避免改变原生原型)
答案 1 :(得分:1)
假设您需要将它添加到Array.prototype中(这是一个坏主意),使用Object.defineProperty
将其添加为不可枚举的并且不会与其他本机方法发生冲突:
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())
&#13;
答案 2 :(得分:0)
将average
功能添加到Array.prototype
:
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);
&#13;