描述:
用以下方法扩展内嵌数组类:
square() : 返回数组中所有元素的平方值。
cube() : 返回数组中所有元素的立方值。
average() : 返回数组中所有元素的平均值。
sum() : 返回数组中所有元素的和。
even() : 返回数组中所有偶数。
odd() : 返回数组中所有奇数。
例如:
var numbers = [1, 2, 3, 4, 5];
numbers.square(); // must return [1, 4, 9, 16, 25]
numbers.cube(); // must return [1, 8, 27, 64, 125]
numbers.average(); // must return 3
numbers.sum(); // must return 15
numbers.even(); // must return [2, 4]
numbers.odd(); // must return [1, 3, 5]
MyCode:
Array.prototype.square = function(){
return this.map(x => x * x);
}
Array.prototype.cube = function(){
return this.map(x => x * x * x);
}
Array.prototype.average = function(){
return this.sum() / this.length ;
}
Array.prototype.sum = function(){
return this.reduce((x,y) => (x + y),0);
}
Array.prototype.even = function(){
return this.filter(x => x % 2 == 0);
}
Array.prototype.odd = function(){
return this.filter(x => x % 2 != 0);
}
CodeWar:
Object.assign(Array.prototype, {
square() {return this.map(n => n * n);},
cube() {return this.map(n => Math.pow(n, 3));},
sum() {return this.reduce((p,n) => p + n, 0);},
average() {return this.reduce((p,n) => p + n, 0) / this.length;},
even() {return this.filter(n => !(n % 2));},
odd() {return this.filter(n => n % 2);}
});