나는 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);
}
}
코드 샘플은 다음이, 제안대로 배열 인 경우 : 오브젝트 정의가 상단을 알 수 있듯이
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 –