Today's mission.
Json의 특정 항목을 찾아 값 바꾸기
>> Json 객체
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | [ { "title":"New event", "fromDate":"2014-05-14 17:00:00", "toDate":"2014-05-14 17:30:00", "name":"일용엄니", "color":"typeA", "id":"def012345" }, { "title":"New event", "fromDate":"2014-05-14 17:00:00", "toDate":"2014-05-14 17:30:00", "name":"이용엄니", "color":"typeB", "id":"abc012345" }, { "title":"New event", "fromDate":"2014-05-14 17:00:00", "toDate":"2014-05-14 17:30:00", "name":"삼용엄니", "color":"typeC", "id":"ghi012345" } ] | cs |
여기서 type[A~Z]인 color 값을 cat[01~23] 형태로 바꿔보려고 한다.
1. 'A' -> 1 로 변환
'A'의 아스키(ASCII)코드 값은 65이다. 아스키 코드값에서 64를 빼면 1이 되지 않을까?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /** * type[A-Z]를 cat[01~23]로 변환 * @param type {String} type[A-Z] 형식의 문자열 * @returns cat[01~23] */ function convertASCII(type) { // 'type([A-Z]' 에서 [A~Z]분리하는 정규식 var _string = type.match(/type([A-Z])/); // ASCII code로 변환 후 64 빼기 var _cnvASCII = _string[1].charCodeAt() - 64; // 'cat[01~23]' 형태로 변환 var _cmpString = 'cat' + ('0' + _cnvASCII).slice(-2); return _cmpString; } | cs |
* match(/type([A-Z])/) 정규식을 사용하면 아래와 같이 배열 형태로 나온다.
2. Json의 color 항목 변경
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** * calendarList 에서 color 값만 변경시키기 * @param calendarList {Array} 캘린더 리스트 */ function refineCalendarList(calendarList) { // for 문 돌아서 calendar 객체에 userdefinecolor 를 이용하여 catClassName 설정한다. for(var i=0; i<calendarList.length; i++) { var _calendar = calendarList[i]; // color 항목에 접근 _calendar.catClassName = convertASCII(_calendar.color); } } | cs |
결과는 어짜피 클래스 이므로 return 해주지 않아도 된다.
>> 결과화면
color 값이 변했다!!!!!!!!!!!!!!!!!!!!!
' └ Java Script' 카테고리의 다른 글
[jQuery] 셀렉터 (Selectors) - 1 (0) | 2014.05.28 |
---|---|
[자료구조] List 와 Map 의 차이점 (2) | 2014.05.19 |
[Java Script] Trim, Ltrim, Rtrim 구현 (정규식 이용) (0) | 2014.04.24 |
[Java Script / jQuery] 입력값 받아와 get방식 URL 파라미터로 넘겨주기 (0) | 2014.04.16 |
[Java Script / jQuery] URL 파라미터 값 읽어오기-2, JavaScript 함수 구조 (2) | 2014.04.16 |