2014-06-18 3 views
0

나는 at.sports라는 객체를 가지고있다.리터럴의 속성이 정의되지 않았는지 확인하는 방법은 무엇입니까?

내 개체에는 sporttype - string 및 array ... 또는 다른 개체 인 두 개의 필드가 있습니다. 난 비주얼 스튜디오에서 구조를 선택하면

at.sports = { 
    sporttype : "Soccer" 
    team : [ 
       { name : "bayern FC", 
       caption: "FCB" 
       } 
      ] 
    } 

내가 얻을 :

는이 같은 뭔가

at.sports = { 
    proto: {}, 
    sporttype: "Soccert" 
    team: object Object 
} 

과 내가 팀을 클릭하면 .. 내가

0을 참조 - 이름 - "아스날", 캡션 - "Asnl" 1 이름 - "bayern FC", caption - "FCB" 팀 속성에 액세스하고 싶습니다. 모든 색인 (0,1)에 자막이 있는지 확인하고 if가 설정되어 있는지 확인하십시오. 캡션이 정의되지 않은 경우 .. 나는 name의 값으로 바꾸고 첫 번째 문자를 대문자로 사용하려고합니다.

예 : 인덱스가 0 인 경우 이름이 "arsenal"이고 캡션이 설정되지 않은 경우 해당 캡션이 "무기고"가되어야하며 첫 번째 문자를 대문자로 사용해야합니다. 캡션 = "Arsenal"입니다.

나는 정말 ... 어떻게 해야할지 모르겠다. 올바른 속성에 손을 넣고 수정한다.

그리고 저는 매우 궁금합니다 .. 팀 속성 .. 개체 또는 배열입니까? 나는 at.spors를 클릭 할 때 Visual Studio에서 객체 Object를 얻었 기 때문에 객체라고 생각합니다 ...

Oh .. 나를 신뢰합니다 .. google에서 연구했습니다. 나는 at.sports에서 내가 필요로하는 것을 액세스하는 방법을 이해하지 못한다.

내가 필요한 항목에 액세스 한 후 .. 자본화 방법이 있다는 것을 알았습니다. 다른 값으로 속성 값을 변경하는 것이 쉽습니다. 나는 성명서에 오류가있다.

나는이 시도 :

 for (var i = at.sports.length; i--;) { 
      if (typeof at.sports.team[i] === "undefined") { 
       alert("something is undefined"); 
      } 
     } 

을 그리고 난 경고 2 회를 ​​얻는다. 색인이 2 개 있습니다. 그래서 .. 문제를 잘못 생각했습니다.

var teamArray = at.sports.team; 
for(var i = 0; i < teamArray.length; i++) { 
    if(teamArray[i].name != null && teamArray[i].caption == null) { 
     var n = teamArray[i].name; 
     teamArray[i].caption = n[0].toUpperCase() + n.substring(1); 
    } 
} 

코드 샘플은 다음이, 제안대로 배열 인 경우 : 오브젝트 정의가 상단을 알 수 있듯이

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects, https://developer.mozilla.org/en-US/docs/Web/JavaScript에서 살펴보십시오./Guide/Predefined_Core_Objects # Array_Object and http://stackoverflow.com/q/11922383/218196 –

답변

0

at.sports가 배열이 아닌 경우는, 다음이 당신이 필요로하는 것입니다 :

for(var i = 0; i < at.sports.length; i++) { 
    var teamArray = at.sports[i].team; 
    for(var j = 0; j < teamArray.length; j++) { 
     if(teamArray[j].name != null && teamArray[j].caption == null) { 
      var n = teamArray[j].name; 
      teamArray[j].caption = n[0].toUpperCase() + n.substring(1); 
     } 
    } 
} 

앞으로는 질문과 정보를 더 잘 정리할 것입니다. 또한, 귀하의 질문에 대한 의견에 의해 제안 된 바와 같이, 나는 JavaScript를 읽을 시간을 보내고 싶습니다.

+0

나는 알고있다. .. 나는 매우 유감 스럽다. 난 그냥 빨리 알아낼 필요가 ... 왜냐하면 나는 30 분 시험을 ... 그리고 내가 중첩 된 속성을 수정해야합니다. 도와 주셔서 대단히 감사합니다. 나는 그 -1 명을 없애기를 희망합니다. (나는 aford에 너무 낮다.) – Matt

관련 문제