怎么会出来函数?哪里错了?
arr = [5,5,5,5];
Array.prototype.sum = function(){
var sum = 0;
for(var i in this){
sum += this[i];
}
return sum;
}
document.write(arr.sum()+"</br>");
跪求讲解 纠结中。。。。。
就是来打酱油的,请不要见怪,没有积分
arr = [5,5,5,5];
Array.prototype.sum = function(){
var sum = 0;
for(var i =0;i<this.length;i++){
sum += this[i];
}
return sum;
}
document.write(arr.sum()+"</br>");
这样就好了,for in循环多用于json循环,数组循环相加的时候适当的时候终止循环,你可以console.log下this[i]是什么东西
不要for in,for in会一起遍历扩展的属性,包括方法,所以一起返回了你的sum函数体
用for代替for in一种很好的解决方式,因为for in 遍历的并不是你想像中的数组,而是对象,当你遍历玩四个五之后并没有结束循环,导致报错
sum里的this对象也是有sum方法的,而且是可以枚举的,所以会将sum方法一起遍历
感觉上面的说的的挺对的,无聊在方法里加了一个终止就显示正确了
var arr = new Array (5,5,5,5);
Array.prototype.yyyy = function (){
var mm = 0;
var len=this.length;
for(var m=0;m<len;m++){
mm+=this[m];
if(m==(len-1)){
return mm;
}
}
return mm;
}
document.write(arr.yyyy());
这不就出来了嘛
var arr = [5,5,5,5];
var sum = 0;
for(var i=0;i<arr.length;i++ ){
sum += arr[i];
}
console.log(sum);
return sum;