2016-09-19 7 views
-4
내가이 출력

JS 나를 정의되지 않은

enter image description here

나는이 방법을 사용하여 ModelState 배열의 첫 번째 멤버에 액세스하려고 해요에게 JS 한

제공 하지만 정의되지 않은 오류가 나타납니다.

또한 alert (data.ModelState)를 수행하려고 할 때 Object 객체가 나타납니다.

어떻게하면 ModelState 배열의 첫 번째 값에 액세스 할 수 있습니까? 감사합니다

+1

: 그들이 중요한 것은이거나 덜 부서지기 쉬운 코드를 원하는 것 공백 키 (또는 공백 문자 일까?). 그래서 당신은'data.ModelState [ ""] [0]' – vlaz

+0

과 같은 것이 필요합니다. 어떤 브라우저에서 이것을 테스트할까요? @Laziale –

+0

@RanojitBanerjee는 Firefox입니다. 더 구체적으로, Firebug 확장 기능. – vlaz

답변

0

데이터에 공백 또는 공백 키가있는 배열이있는 것으로 보입니다. 그래서 가장 가능성이 보이는이

{ 
    ModelState: { 
     "": [ "string1", "string2" ] 
    } 
} 

당신은 그것이 무엇인지 당신이 확실하지 않은 경우 대안도 있습니다 예를 data.ModelState[""][1] //"string1"

를 들어, 한,이 키를 통해 액세스 할 필요가 내가 그은을 가진 개체라고 생각

var data = { 
 
    ModelState: { 
 
    "": [ "string1", "string2" ] 
 
    } 
 
}; 
 

 
console.log("--Using Object.keys--") 
 
Object.keys(data.ModelState).forEach(function(key) { 
 
    console.log(data.ModelState[key]); 
 
}) 
 

 
console.log("--Using for...in loop--") 
 
for (var key in data.ModelState) { 
 
    console.log(data.ModelState[key]); 
 
}

0

data.ModelState[''][0]을 사용하여 액세스해야합니다. 두 개의 문자열을 포함하는 배열 요소에 인덱스의 빈 공간 또는 공백 문자 만있는 중첩 배열이있는 것 같습니다.

0

[object Object]은 정확한 문제를 재현 할 수는 없지만 배열이라고 생각되는 개체는 실제로는 JavaScript Object이며 다른 데이터 구조입니다. JS 객체는 다른 객체 지향 언어의 객체와 상당히 유사합니다. 문자열 표현은 알다시피, 내용에 관계없이 [object Object]]입니다.

> String({}) 
< "[object Object]" 
> String({abc: "foo", def: "bar"}) 
< "[object Object]" 

당신은 내가 더 많은 도움을 줄 수 재현하는 방법에 대한 단계를 질문을 업데이트하는 경우 하지만 난 그 바른 길에 당신을 얻을 정도로 희망!

관련 문제