发布网友 发布时间:32分钟前
共2个回答
热心网友 时间:4分钟前
var ysall = new Array("1", "2", "3");
var b = 0;
console.log(ysall.length);
setInterval(function(){
a(ysall);
}, 1000);
function a(sz) {
if (b < sz.length) {
console.log('----');
console.log(b);
console.log(sz[b]);
}
b++;
//你之前的错误是b作为函数的参数传入, 在函数内部, b是局部变量(作用范围仅限于a函数内部), 对b操作不会影响外面的b.
}
建议你在chrome浏览器中测试, 按F12打开控制台, 选择console这个视图, 刷新浏览器, 可以很好的展现这个过程. 使用console.log测试比alter直观.
热心网友 时间:8分钟前
var ysall=new Array("1","2","3")
//ysall是我自己的数组
var b = 0
alert(ysall.length)
setInterval("a(ysall)",1000)
//sz是数组的意思
function a(sz){
if (b<sz.length){
alert(b)
alert(sz[b]);
}
b++
}
setInterval那里,调用a方法时,因为b做为值传递而非引用传递,导致你在a方法内部没办法修改外部的b参数,按我那样修改,在a方法内部直接访问外部的b变量即可