기본 콘텐츠로 건너뛰기

라벨이 array인 게시물 표시

Coffeescript 에서 Array와 Object를 다루는 방법

자바스크립트를 하다보면 JSON Object와 Array를 처리할 일이 참 많다. http://spectrumdig.blogspot.com/2012/01/array-method-iteration.html Array 의 경우 위의 글을 참조. 그런데 Object는 Array처럼 다양하고 Chaining 이 가능한 방법이 없다. 기껏해야 for (var obj in jsonObject) 정도. 게다가 속도문제도 있어서 ( http://jsperf.com/for-vs-foreach/9  참조) 가독성과 코드 단순화도 좋지만 요즘같이 Rich Web Application + Mobile Web 시대에 쓰기엔 효율이 나쁜 방법이긴 하다. coffeescript 의 경우 object 와 array 에 대해 어느정도 비슷한 처리방식을 제안한다. array : <statement> for <variable> in <array> object : <statement> for <variable>,{<variable>} in <object> 와 같은 형식이다. object 의 경우 variable 로 key, value 형식을 쓸 수 있는데 value 를 생략할 수 있다. 예를 들면 아래와 같다. console.log arr for arr in [1,2,3,4,5] console.log k,v for k,v of a:1, b:2, c:3 물론 당연히 두개를 혼합해서 쓸 수도 있다. console.log k,v for k,v of obj for obj in [ {a:1, b:2}, {a:3, b:4 }, {a:1, c:4} ] 결과는 아래와 같다. a 1 b 2 a 3 b 4 a 1 c 4 재미있는 점은 둘 다 공히 when 이라는 조건절을 넣어서 filter 를 할 수 있다. console.log k,v for k,v of a:1,...

Array function - Iteration

이것만은 꼭 알고 이해하고 손에 익숙해두자. forEach : 배열의 갯수만큼 반복 map : return 값을 인자로 배열을 반환 reduce : return 값과 배열을 인자로 연산 some : return 이 하나라도 참이면 참을 반환 every : return 이 모두 참이면 참을 반환 sort : return 이 참인 기준의 순방향 정렬 filter : return 이 참인 것들의 배열을 반환 배열을 만들고 직접 돌려보고 느껴보자. reduce 로 sum, min, max를 한다던가 every 로 transaction처리를 한다던가 하는 걸 예로 들면 사고의 폭이 좁아질 수도 있으니 돌려보면서 현상을 관찰하는게 좋다. 기타 함수 concat : 배열들을 연결 indexOf : 인자의 위치를 반환 join : 인자로 배열들을 연결 slice : from<to 범위의 배열을 반환 splice : from에서 n개만큼 배열을 잘라내고 그 부분을 반환 push, pop : 배열의 뒷쪽에 넣고 빼기 unshift, shift : 배열의 앞쪽에서 넣고 빼기