문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 언더스코어 (문단 편집) == 예시 == [[https://lodash.com/docs]] 여기서 해당 API 목록을 예제와 함께 볼 수 있는데 리스트나 객체를 다룰 때 빈번히 사용되는 '''패턴'''들을 일반화한 함수들을 제공하는 것을 볼 수 있다. API문서가 보이는 창에는 기본적으로 언더스코어 라이브러리가 로드돼있기 때문에 '''F12''' 눌러서 나오는 자바스크립트 콘솔에 해당 명령들을 입력하면 API를 바로 실험해볼 수도 있다. 이게 도대체 무슨 쓸모가 있는지 잘 모르겠다면 아래의 일을 처리할 수 있는 함수를 생각해보자. || 어떤 객체의 리스트를 특정 키 값을 기준으로 정렬한 새로운 리스트를 반환 || [[SQL]]이라면 간단하다. 그냥 아래의 질의 명령을 [[데이터베이스]]에 내리면 되니까. {{{SELECT * FROM some_table ORDER BY 'key'; }}} 하지만 자바스크립트로 짜려면 궁리를 많이 해야 할 뿐만 아니라, 여러 Case 를 고려해야하기 때문에 코드 자체가 더러워질 수밖에 없다. 하지만 언더스코어 라이브러리에서는 이걸로 충분하다. {{{#!syntax javascript // arr 리스트의 객체를 time프로퍼티에 대해서 정렬 var sorted_arr = _.sortBy(arr, "time"); }}} 그리고 이런 식으로 정렬된 배열에 대해 [[이진 탐색]]을 하려고 하면 어떨까? {{{#!syntax javascript var finder_index = _(arr).pluck("time").indexOf(current_time, true); }}} -1 부터 1 사이의 부동소숫점 값으로 된 배열의 절댓값을 취해서 다 더하는 건? {{{#!syntax javascript var abs_sigma = _([-1,0,1]).map(Math.abs).sum(); }}} 더하는 게 아니라 곱하는 거라면? 곱셈은 sum 이딴 거 없는데? {{{#!syntax javascript var abs_pi = _([-2,3,4]).map(Math.abs).reduce(_.multiply, 1); }}}위의 답은 -24가 아니라 24다. 절댓값을 곱했으니까. 두 리스트의 '''차이값'''으로 된 리스트를 얻고 싶다? {{{#!syntax javascript var diff_list = _.zipWith([1,2,3,4], [5,6,7,8], _.subtract); }}} 복잡한 예제로, 단어 빈도수 세기 프로그램을 만들어보자. {{{#!syntax javascript var words = {}; _.each(_.words("ade ball cat drama ade ade drama"), function(a) {words[a] = _.add(words[a], 1); }); }}}-- 두 줄이나 돼서 복잡하다. --- 또는 변수값 변화 따위 없는 순수한 함수형으로 만들고 싶은 경우 {{{#!syntax javascript var words = _(_.words("ade ball cat drama ade ade drama")).groupBy().mapValues("length").value(); }}}-- 더 짧은게 함정 -- 또는 아예 (lodash 가 제공하는) fp 라이브러리를 써서 아래와 같이 할 수도 있다. {{{#!syntax javascript var words = fp.compose(fp.mapValues("length"), fp.groupBy(fp.identity), fp.words)("ade ball cat drama ade ade drama"); }}} 위에것 전부 Lo-Dash의 예제다. 하지만 언더스코어도 거의 호환된다. 이외의 예제들은 위의 사이트들을 방문해 보자. [[분류:라이브러리]]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기