干杯伙计们。我被要求让这段代码在学习挑战中工作,我不知道如何处理"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%的学习基础,所以一切都有帮助。
发布于 2018-03-26 03:42:51
首先将函数附加到数组对象,然后确保在其末尾返回一个值:
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);
(避免变异本机原型)
发布于 2018-03-26 03:48:45
假设您需要将其添加到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())
发布于 2018-03-26 03:51:01
将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);
https://stackoverflow.com/questions/49483590
复制相似问题