<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,
我有一個函數,我試圖在循環內多次運行變量的每個唯一值。當我在循環之外運行它時,一切都很好,並且當我在沒有函數調用的情況下運行它時,循環運行正常。嘗試用不同的Eval包裝它的各個部分,雖然它沒有破壞任何東西它也沒有幫助。
第一次迭代運行正常,runBT的結果是正確的。如果我運行runBT(“clstr2”,1);和runBT(“clstr2”,2);在循環之外,它每次都返回正確的結果。如果我在循環中註釋掉runBT,則顯示i = 1然後i = 2,按預期迭代兩次。如果沒有它註釋掉它會正確運行一次然後退出,在第一次迭代後顯示“循環結束”沒有任何錯誤。
clust2vals =關聯數組(dt:clstr2)<< get keys;
n = N項(clust2vals);
顯示(N); // n = 2
節目(clust2vals [1]); // = 1
節目(clust2vals [2]); // = 2
for(i = 1,i <= n,i ++,
顯示(ⅰ);
myab = runBT(“clstr2”,clust2vals );
秀(myab)
);
show(“循環結束”);
我的猜測是runBT函數正在修改具有全局範圍的i或n變量。您可以通過在函數中使用局部變量或使用命名空間來避免這種情況。