我正在循環使用jQuery每個函數的數組。我爲它分配一個臨時變量來循環而不是實際的數組本身,因爲我使用拼接來修改原始數組。但是,看起來temp
即使在拼接array
時也會被修改。jQuery的每個數組問題
function example (Data, index, array) {
var temp = array;
$.each(temp, function(i, v) {
if(Data["b"+v].length > index) {
//do stuff
} else {
array.splice(i,1);
}
});
if(array.length > 0) {
example(Data, index+1, array);
}
}
array = [1,2,3,4]
Data = {"b1":[a,b,c,d],"b2":[e,f,g,h], "b3":[i,j], "b4":[k,l,m,n]};
example(Data, 0, array);
在示例的第三呼叫,對溫度的第四次迭代,v成爲未定義,並且因此下一行泵出的「無法讀取的未定義長度」錯誤。這發生在array.splice(3,1)
被調用後,好像temp指向與數組相同的地方而不是其副本。
任何人都可以幫忙嗎?
以相反的順序遍歷數組看起來好多了,謝謝。 – Michael