setTimeout 和 setInterval区别及 对array数组的扩展
时间:2010-12-23 来源:Joans
setTimeout方法是定时程序,也就是在什么时间以后干什么。干完了就拉倒。
setInterval方法则是表示间隔一定时间反复执行某操作。
如果用setTimeout实现setInerval的功能,就需要在执行的程序中再定时调用自己才行。如果要清除计数器需要 根据使用的方法不同,调用不同的清除方法:
例如: tttt=setTimeout('northsnow()',1000);
clearTimeout(tttt);
或者:
tttt=setInterval('northsnow()',1000);
clearInteval(tttt);
二:可以对其进行扩展
如: Function.prototype.delay = function(time) { var timer = setTimeout(this, time); } //函数延迟time毫秒执行
调用是 :check.delay(2000)
比如array没有contains,sort等,都可以写个扩展
Array.prototype.sorts = function() { return this.sort(compare); } //数组排序,按照升序排序
function compare(a, b) { return a - b; } //定义排序规则
Array.prototype.removeAt = function(dx) { //清除指定索引的数组元素
if (isNaN(dx) || dx > this.length) { return false; }
for (var i = 0, n = 0; i < this.length; i++) {
if (this[i] != this[dx])
this[n++] = this[i];
}
this.length -= 1;
}
Array.prototype.filter = function() { //清除数组中的重复值
var arr = [];
for (var i = 0; i < this.length; i++) {
if (!arr.contains(this[i]))
arr.push(this[i]);
}
return arr;
}
Array.prototype.contains = function(item) { //检测数组是否包含某元素
for (var i = 0; i < this.length; i++) {
if (this[i] == item)
return true;
}
return false;
}