javascript前端:封装array的foreach方法

在日常工作中,会经常遍历数组,除了常用的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原型链

使用方式:

<script>
var vModel=[1,2,3,4] ;
vModel.forEach(function (item, index) {
console.log("值:"+item+"---序号:"+index)
});
</script>

在ie8中运行正常,效果如下:

javascript前端:封装array的foreach方法
posted @ 2019-10-11 09:41  鹅是码农  阅读(973)  评论(0编辑  收藏  举报