jquery 각 함수를 사용하여 배열을 반복합니다. splice를 사용하여 원래의 배열을 수정하고 있기 때문에 실제 배열 자체 대신 루프를 통해 임시 변수를 할당합니다. 그러나 array
을 연결할 때 temp
이 수정되는 것 같습니다. 예 제 호에서 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);
은 온도 4 일 반복에서, V는 정의되고, 따라서 다음 라인은 "미정의 길이를 읽을 수없는"의 오차를 펌프. 이것은
array.splice(3,1)
이 호출 된 직후에 발생합니다. temp는 복사본이 아닌 배열과 동일한 위치를 가리키는 것처럼 보입니다.
아무도 도와 줄 수 있습니까?
배열을 역순으로 진행하는 것이 훨씬 더 깨끗해 보입니다. – Michael