2017-04-21 1 views
1

내 코드에는 두 가지 모드가 있습니다. 모드에 따라 data_holder은 매우 다를 수 있습니다.Safari 평가 코드가 없습니다. TypeError : undefined가 객체가 아닙니다.

다음 코드가 있습니다.

if (mode == 1) { 
    trials[i]['material'][k]['named'] = data_holder[a]['segmentation']['named'] 
// more stuff that works fine.   

} else if (mode == 2) { 
    // more stuff that works fine 

}

나는 크롬과 사파리에서 모두 테스트하고있다. 두 모드 모두 Chrome에서 잘 작동합니다. 모드 1은 사파리에서도 작동하지만 모드 2에서는 다음 오류가 발생합니다. 이상하게도 제기 된 오류는 실행해야 할 부분이 아닙니다.

TypeError: undefined is not an object (evaluating 'data_holder[a]['segmentation']')

왜 평가하고있다 data_holder [A] [ '분할'] 그것이 경우 문의 해당 섹션에 있어야하지 때? 사파리 콘솔에서이 코드가 잘 작동

+0

서식을 수정하고 샘플 입력을 제공하십시오. 그것을 실행 가능한 스 니펫으로 삽입하면 도움이됩니다. * data_holder *가 정의되었거나 값이 할당 된 곳은 어디입니까? 그 가치는 무엇입니까? 변수가 선언되지 않은 이유는 무엇입니까? – RobG

+0

오류를 재현하는 가장 중요한 부분으로 코드를 줄일 수 있습니까? –

+0

@ ハ セン 완료되었습니다. –

답변

0

시도 붙여 넣기 : 다른

아마
trials = [] 
data_holder = {} 
mode = 2 

if (mode == 1) { 
    trials[i]['material'][k]['named'] = data_holder[a]['segmentation']['named'] 
// more stuff that works fine.   

} else if (mode == 2) { 
    // more stuff that works fine 
    console.log("safe"); 
} 

일이 예상대로되지 2로 설정되는 그의 원인이 모드를 일어나고있다.

관련 문제