高阶函数 - 分时函数
/** * 分时函数 * @param {[Array]} ary [数据] * @param {Function} fn [根据数组中的每个数据执行一个fn] * @param {[type]} count [每200ms执行一次start方法,start方法执行count次fn方法] */ var timeChunk = function(ary, fn, count) { var obj, t; var start = function() { for (var i = 0; i < Math.min(count || 1, ary.length); i++) { var obj = ary.shift(); fn(obj); }; }; return function() { t = setInterval(function() { if (ary.length === 0) { return clearInterval(t); } else { start(); }; }, 200); }; }; // test var ary = []; for (var i = 1; i <= 1000; i++) { ary.push(i); }; var renderFriendList = timeChunk(ary, function(n) { var div = document.createElement('div'); div.innerHTML = n; document.body.appendChild(div); }, 8); renderFriendList();
开心的做一个无忧无虑的码农,争取每天进步一点。