프론트엔드

underscore 알아보기 (2)

CyberI 2017. 9. 7. 14:01

안녕하세요.


underscore 알아보기 (1)에 이어 후속 내용을 이어가도록 하겠습니다.


이 전에 each, context(this), find, countBy, reduce, some, contains, every, max, min, sortBy, groupBy 를 알아보았습니다.


이번에는 reject, filter, partition, toArray, values, object, defference, shuffle, sample, invoke, first, rest, last, initial ,

union,  intersection, uniq, zip, compact, indexOf, range 


를 알아보겠습니다.


1. _.reject, _.filter, _.partition, _.difference


이 함수들은 배열의 원소들을 true/false 기준으로 나누는 함수들 입니다.

_.filter는 true만 남기는 함수, _.reject는 false만 남기는 함수, _.partition은 두가지 기능을 동시에 수행합니다.

_.difference 함수는 차집합의 개념으로 첫번째 파라미터에서 두번째 파라미터를 뺍니다.



위의 샘플에서 확인 하실 수 있습니다.


2. _.toArray, _.values, _.keys, _.object 입니다.


_.toArray와 _.values는 속성에 대한 결과값을 가지고 옵니다.

속성값 자체를 가져오고 싶을 때는 _.keys나 _.allKeys를 사용합니다.



3. _.shuffle, _.sample, _.invoke 입니다.


_.invoke는 첫번째 인자로 배열을 받고 두번째 인자로 (메서드 이름)명령어를 받습니다. (sort, join 등이 있음)

_.shuffle은 받은 배열을 임의로 섞어주고, _.sample은 받은 배열의 원소 중에 몇개를 임의로 뽑아 냅니다.





4. _.first, _.rest, _.last, _.initial


_.fist는 앞에서부터 뽑기 시작하고, _.rest는 앞에서부터 뽑히지 못한 나머지를 뽑는다.

_.last는 뒤에서부터 뽑기 시작하고, _.initial은 뒤에서부터 뽑히지 못한 나머지를 뽑는다.

_.first와 _.rest가 한 셋트 이고 _.last와 _.initial이 한 셋트 이다.


 


5. _.union, _.interaction, _.uniq


합집합, 교집합, 차집합(_.difference) 의 의미를 구현한 함수입니다.

_.uniq는 중복을 제거해 줍니다.



6. _.zip 


배열들을 받아서, 배열내 index를 기준으로 새로운 배열로 묶어줍니다.





7. _.compact, _.indexOf


_.compact는 0이나 false, null, "" 등을 제거해줍니다.

_.indexOf는 내가 찾고자 하는 원소가 몇 번째에 있는지를 알려 줍니다.





8. _.range


다른 함수에 비해 다른 부분이 있다면 기준이 되는 object나 array를 인자로 넘기지 않습니다.

기준은 정수배열입니다.

세번째 인자로 step을 설정할 수 있습니다.

_.range([start], stop, [step])




후속 포스팅에서 계속 이어나가도록 하겠습니다.