[Javascript] Lodash 활용

Server The SOPT·2022년 7월 21일
1
post-thumbnail

✏️작성자: 이서우

javaScript 기반 node.js 서버 구축에 유용하게 활용되는 라이브러리인 lodash를 소개하려 한다.
이러한 라이브러리들은 앱잼 시에도 유용하게 쓰일 수 있다고 생각한다.

_.concat

인자로 주어진 배열들을 기존 배열에 합쳐서 새 배열을 return한다.
이 때, 기존 배열을 변하지 않는다.

var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
 
console.log(other);
// => [1, 2, 3, [4]]
 
console.log(array);
// => [1]

_.indexOf

주어진 배열에서 원하는 값의 위치를 찾아 인덱스를 return한다.
이 때, 시작 위치의 인덱스 값을 옵션으로 사용할 수 있다.

_.indexOf([1, 2, 1, 2], 2);
// => 1
 
// Search from the `fromIndex`.
_.indexOf([1, 2, 1, 2], 2, 2);
// => 3 (2번 index 이후부터 찾아요)

_.indexOf([1, 2, 3], 1, 2);
// => -1 (원하는 값이 없으면 -1을 return해요)

_.find

object 배열(collection)에서 조건에 해당하는 첫 object를 return한다.

var users = [
  { 'user': 'barney',  'age': 36, 'active': true },
  { 'user': 'fred',    'age': 40, 'active': false },
  { 'user': 'pebbles', 'age': 1,  'active': true }
];
 
_.find(users, function(o) { return o.age < 40; });
// => object for 'barney'
 
// The `_.matches` iteratee shorthand.
_.find(users, { 'age': 1, 'active': true });
// => object for 'pebbles'
 
// The `_.matchesProperty` iteratee shorthand.
_.find(users, ['active', false]);
// => object for 'fred'
 
// The `_.property` iteratee shorthand.
_.find(users, 'active');
// => object for 'barney'

_.filter

object 배열(collection)에서 조건에 해당하는 object의 배열을 return한다.
find와 다른 점은, find는 해당하는 첫 object를 return하고 filter는 해당하는 모든 object들의 배열을 return한다는 점이다.

따라서, 만약 조건에 해당하는 object가 존재하지 않는다면 find는 null을, filter는 []를 return한다.
따라서 조건에 해당하는 object가 존재하지 않는지 판단하기 위해 find는 if (!findReturnV) / filter는 if (!filterReturnV.length) 를 활용해야 한다.

만약, if (!filterReturnV) 로 하면 조건에 해당하는 object가 없어도 true를 return한다.

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false }
];
 
_.filter(users, function(o) { return !o.active; });
// => objects for ['fred']
 
// The `_.matches` iteratee shorthand.
_.filter(users, { 'age': 36, 'active': true });
// => objects for ['barney']
 
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, ['active', false]);
// => objects for ['fred']
 
// The `_.property` iteratee shorthand.
_.filter(users, 'active');
// => objects for ['barney']

_.sortBy

collection 값들을 원하는 필드를 기준으로 정렬한다. SQL 문에서 가져온 data들을 원하는 순서로 가공할 때 사용하면 편리하다.

collection 값들을 원하는 필드를 기준으로 정렬해줘요. SQL 문에서 가져온 data들을 원하는 순서로 가공할 때 사용하면 편리해요.

_.groupBy

_.groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }
 
// The `_.property` iteratee shorthand.
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }

_.difference

첫번째 배열에서 다른 배열들과 연관되지 않은 값들을 모아 새로운 배열을 생성한다.

_.difference([2, 1], [2, 3]);
// => [1]
profile
대학생연합 IT벤처창업 동아리 SOPT 30기 SERVER 파트 기술 블로그입니다.

0개의 댓글