2017-02-17 2 views
0

나는 항상 는 자바 스크립트 내 코드에서

for(i in vector)... 

을하고 있었다 그것은 항상 일을하지만, 문제는 어떻게 든 변화한다는 것입니다 및 , "제거"와 같은 함수이며, 그것은 내 전체 코드를 위반합니다.

내가 갑자기 변한 이유는 모르겠다. 아무 것도하지 않았기 때문에 나는 이미 이것에 미쳐있다.

내 응용 프로그램에 어떤 문제가 있는지 알고 계십니까?

또 다른 한 가지는 코드가 내 컴퓨터에서만이 문제를 해결한다는 것입니다.

저장소를 다시 복제하고 잠시 동안 사용해 보았지만 문제가 다시 발생하면 다시 시도하십시오.

감사합니다.

+2

'항상 worked' -? 정말'하지만 문제는 어떻게 든 changed'이다 -가 아니라 지난 15 년 동안은 *가 포함 열거 가능한 모든 속성을 표시하지 –

+0

*에있다 '[[Prototype]] 체인. 뭔가 바뀌 었습니까? – RobG

+0

JaromandaX 동일한 코드로 다른 분기로 이동하거나 다른 컴퓨터에서 내 분기를 실행하면 작동하지만 내 컴퓨터의 분기는 잠시 동안 작동 한 다음이 작업을 시작하고 그 이유를 모르겠습니다. – alanfortlink

답변

0

in 연산자는 항상 이러한 동작을합니다. 그냥 속성이 직접 개체 대신에 prototype에 있는지 확인하십시오

for (var i in vector) { 
    if (vector.hasOwnProperty(i)) { 
     // Property exists on object 
    } 
} 

당신의 문제를 해결해야한다고.

+0

다른 지점이나 다른 컴퓨터에서 동일한 코드가 작동하는 이유를 알고 있습니까? – alanfortlink

+0

나는 그걸로 너를 도울 수 없어. spec은 이것을'in' 연산자의 올바른 행동으로 정의합니다. 아마도 현재보고있는 출력의 차이를 설명 할 수있는 다른 브라우저를 사용하고 있을지 모르지만, 그런 경우가 될 가능성이 적습니다. – maddockst