数组分块(array chuncking)


在数组分块模式中,array 变量本质上就是一个待办事宜列表,它包含了要处理的项目。使用shift()方法可以获取队列中下一个要处理的项目,然后将其传递给某个函数。如果在队列中还有其他项目,则设置另一个定时器,并通过arguments.callee 调用同一个匿名函数。要实现数组分块非常简单,可以使用以下函数。
function chunk(array, process, context){
    
 setTimeout(function(){
          var item = array.shift();
         process.call(context, item);
         if (array.length > 0){
              setTimeout(arguments.callee,100);
             }
      }, 100);
}

chunk()方法接受三个参数:要处理的项目的数组,用于处理项目的函数,以及可选的运行该函数的环境。函数内部用了之前描述过的基本模式,通过call()调用的process()函数,这样可以设置一个合适的执行环境(如果必须)。定时器的时间间隔设置为了100ms,使得JavaScript 进程有时间在处理项目的事件之间转入空闲。你可以根据你的需要更改这个间隔大小,不过100ms 在大多数情况下效果不错。可以按如下所示使用该函数:
var data =[12,123,1234,453,436,23,23,5,4123,45,346,5634,2234,345,342];
function printValue(item){
       
var div =document.getElementById("myDiv");
        div.innerHTML += item +"<br>";
}
chunk(data, printValue)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值