在日常工作中,会经常遍历数组,除了常用的for循环外,forEach应该也是最常用的
forEach语法
array.forEach(function(currentValue, index, arr), thisValue)
但是需要注意的是,这个方法在IE低版本中竟然不兼容,所以下面封装一个,封装代码如下:
if (!Array.prototype.forEach) {
Array.prototype.forEach = function forEach(callback, thisArg) {
var T, k;
if (this == null) {
throw new TypeError("this is null or not defined");
}
var O = Object(this);
var len = O.length >>> 0;
if (typeof callback !== "function") {
throw new TypeError(callback + " is not a function");
}
if (arguments.length > 1) {
T = thisArg;
}
k = 0;
while (k < len) {
var kValue;
if (k in O) {
kValue = O[k];
callback.call(T, kValue, k, O);
}
k++;
}
};
}
这里用到了prototype原型链
使用方式:
在ie8中运行正常,效果如下:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/835/viewspace-3167183/ ,如需转载,请注明出处,否则将追究法律责任。