본문 바로가기

기타/node js

[node js] lodash example

728x90

lodash란 자바스크립트에서 array, collection, data, number, object 등을 이용해 데이터를 쉽게 다룰 수 있도록 도와주는 패키지입니다.

npm에서 다운로드가 가장많은 패키지입니다.

lodash의 기본 사용법에 대해 알아보도록 하겠습니다.

다운로드 방법은 간단합니다.

cmd를 실행한 후 'npm i lodash'를 입력해주시면 됩니다.

 

1.import 방법.(nodejs 기준)

// Load the full build.
var _ = require('lodash');
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
var fp = require('lodash/fp');
 
// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');
 
// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');

위의 코드를 사용하면 lodash에서 사용할 거의 모든 모듈들을 import 할 수 있습니다.

 

2.array 다루는 함수 fill 사용해보기.(자주 쓰이는 함수입니다.)

_. fill(array, value, [start=0], [end=array.length])구성 요소는 다음과 같습니다.

start와 end는 디폴트 값이 있어 넣지 않아도 됩니다.

시작과 끝을 정하고 싶으면 입력해주시면 됩니다.

var array = [1, 2, 3];
 
_.fill(array, 'a');
console.log(array);
// => ['a', 'a', 'a']
 
console.log(_.fill(Array(3),2, 1,3));
//=>[ <1 empty item>, 2, 2 ]

console.log(_.fill([1,2,3,4], '*', 1, 2));
// => [ 1, '*', 3, 4 ]

end index전까지만 값을 변형시킵니다.

array를 다루는 함수는 이밖에도. chuck,. compact 등 많습니다.

필요한 것을 찾아서 사용하시며 됩니다.

 

2.Object다루는 함수,. findkey 사용해보기.

_. findKey(object, [predicate=_. identity])

object에서 원하는 값을 꺼낼 때 수월하게 해주는 함수입니다.

var users = {
    'bal':  { 'age': 15, 'active': true },
    'mo':    { 'age': 25, 'active': false },
    'story': { 'age': 35,  'active': true }
  };
   
  //users안에 있는 객체들이 o에 하나씩 들어가 age가 40보다 작으면 return하고 종료한다.
  console.log(_.findKey(users, function(o) { return o.age < 40; }));
  // =>bal
   
  //age:35, active:true 조건에 맞는 객체를 가져온다.
  console.log(_.findKey(users, { 'age': 35, 'active': true }));
  // => story
   
  //active값이 false인 객체를 가져온다.
  console.log(_.findKey(users, ['active', false]));
  // => mo

  //active가 true인 첫 번째 값을 가져와 보여준다.
  console.log(_.findKey(users, 'active'));
  // => bal

해당 함수를 사용하면 객체를 다룰 때 너무 수월하겠죠 ㅎㅎㅎ

 

이밖에도 데이터 종류별로 유용한 함수들이 많습니다.

반드시 사용해보시기 바랍니다 ㅎㅎ

감사합니다.

728x90