偷师学艺,借鉴排名第一的答案,如果用setTimeout()实现可以这样写:
javascript(function(arr){
var i=0; length=arr.length;
(function a(){
setTimeout(function(){
if(i
console.log(arr[i++]);
a();
},1000);
}())
}([9,6,4,7,'r','t']));
如果是用setInterval()实现可以这样写:
javascript(function(arr){
var i=0; length = arr.length;
(function(){
setInterval(function(){
if(i
console.log(arr[i++]);
},1000);
}())
}([9,6,4,7,'r','t']));
基本上思路差不多,我也是个小白,匿名函数自执行也是最近学习了一点,我这里写一下我的分解思路,就当做是小白的一个读书笔记吧:
首先,一开始先想到遍历数组挨个打印,于是就是这样:
javascriptvar arr = [9,6,4,7,'r','t'];
for(var i=0; i
console.log(arr[i]);
}
其次再在这个基础上想到匿名函数自执行把arr作为形参,具体数组作为实参,于是就是下面这样:
javascript(function(arr){
var i=0; length = arr.length;
for(i; i
console.log(arr[i]);
}
}([9,6,4,7,'r','t']));
最后想到用匿名函数自执行并使用setInterval()实现每一秒挨个打印:
javascript(function(arr){
var i=0; length = arr.length;
(function(){
setInterval(function(){
if(i
console.log(arr[i++]);
},1000);
}())
}([9,6,4,7,'r','t']));
再在这个基础上参(fu)考(zhi)排名第一的答案用setTimeout()实现此效果:
javascript(function(arr){
var i=0; length=arr.length;
(function a(){
setTimeout(function(){
if(i
console.log(arr[i++]);
a();
},1000);
}(i))
}([9,6,4,7,'r','t']));
感谢楼上各位大牛的答案,菜鸟我受教了。