循环打印i值(面试题)

时间:2021-12-31 07:00:44

/*
* 下面的代码,为了实现每隔1秒说一句话,
* 找出存在的问题,并改正,然后描述一下你的解决方案。
* */

var arr = [ '第一句话', '第二句话', '第三句话', '第四句话' ];
for( var i = 0, len = arr.length; i < len; i++ ) {
setTimeout( function() {
console.log( arr[i] );
}, 1000);
}

for( var i = 0, len = arr.length; i < len; i++ ) {
(function(i) {
setTimeout( function() {
console.log( arr[i] );
}, 1000 * (i + 1));
}(i));
}

for( var i = 0, len = arr.length; i < len; i++ ) {
setTimeout( (function(i) {
return function() {
console.log( arr[i] );
}
}(i)), 1000 * (i + 1));
}