callback( list[ i ], i )这里的传的参数list[ i ]实际上是一个拷贝,所以你的row=i在循环的时候改的只是拷贝的值,退出循环就失效了。你直接用area[ i ]=i能正常赋值是因为area就是数组本身,你修改它自身当然有效
foreach(area,function(row,i){row=1;});——上面这个“row”应该是等于i吧。不然你这回调函数多个形参i是做什么用的?