啦啦啦~~
代码
<script>
var arr =[1,2,3,4];
for (var i in arr){
console.log(arr[i]);
}
</script>
结果控制台输出
1
2
3
4
这样使用没有任何问题
那么给js原型对象Array加一个方法呢
<script>
var arr =[1,2,3,4];
Array.prototype.fn = function(){
}
for (var i in arr){
console.log(arr[i]);
}
</script>
结果控制器里暑输出了
1
2
3
4
function () {
}
使用for不会发生这样的情况
<script>
var arr =[1,2,3,4];
Array.prototype.fu = function () {
}
for (var i = 0;i<arr.length; i++){
console.log(arr[i]);
}
</script>
输入结果
1
2
3
4
同样的使用forEach也不会出现
语法
array.forEach(callback(currentValue, index, array){
//do something
}, this)
array.forEach(callback[, thisArg])
参数
callback
为数组中每个元素执行的函数,该函数接收三个参数:
currentValue(当前值)
数组中正在处理的当前元素。
index(索引)
数组中正在处理的当前元素的索引。
array
forEach()方法正在操作的数组。
thisArg可选
可选参数。当执行回调 函数时用作this的值(参考对象)。
返回值
undefined.
代码
<script>
var arr =[1,2,3,4];
Array.prototype.fu = function () {
}
arr.forEach(function(ele){
console.log(ele);//1234
})
</script>
输出结果
1
2
3
4