[1일 3 Lodash 공부방] chunk, compact, concat

Nekoromancer·2021년 5월 24일
0

1일 3 Lodash 공부방

목록 보기
1/4

1. _.chunk

_.chunk(array, [size = 1])

array를 size에 주어진 길이만큼의 array 들로 분할하여 반환한다. 길이가 모자란 요소들은 모자란 길이대로 반환된다.

_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
 
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]

size의 기본값은 1이며, 0 혹은 그보다 작은 값이 들어가면 빈 배열이 반환된다.

_.chunk(['a', 'b', 'c', 'd'], 0);
// => []

fp(함수형 프로그래밍)용 lodash의 경우 인자의 순서가 반대이며, 다른 모든 함수들과 마찬가지로 커링이 가능하다.

fp.chunk(2, ['a', 'b', 'c', 'd']);
// => [['a', 'b'], ['c', 'd']]
 
fp.chunk(3, ['a', 'b', 'c', 'd']);
// => [['a', 'b', 'c'], ['d']]

fp.chunk(2)(['a', 'b', 'c', 'd']);
// => [['a', 'b'], ['c', 'd']]
 
fp.chunk(3)(['a', 'b', 'c', 'd']);
// => [['a', 'b', 'c'], ['d']]

2. _.compact

주어진 함수의 요소들 중에서 falsey 값을 제거한다. javascript 에서 falsey는 false, null, 0, undefined, NaN 그리고 빈 문자열인 ""이다.

_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]

fp용 함수도 별다른 특이사항은 없는 심플한 함수다.

3. _.concat

주어진 값들을 합쳐서 새로운 배열로 반환한다.

var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
 
console.log(other);
// => [1, 2, 3, [4]]
 
console.log(array);
// => [1]
// 당연한 이야기겠지만 원래값에는 변화가 없다.

각각의 배열 요소들은 원시형의 값들이라면 그대로 반환되고, 배열이라면 flatten 되어 한꺼풀 벗겨진다(Object 형은 그대로 반환된다).

fp용 함수로 오게되면 concat의 사양이 조금 바뀌게 된다. 우선 두개의 인자를 받으며, 첫번째 인자와 두번째 인자를 flatten 한 후 합쳐서 배열로 반환한다.

fp.concat([1, 2], [3, [4]]);
// => [1, 2, 3, [4]]

concat 함수 역시 커링 되지만 일반 Lodash 함수와 달리 2개를 초과하는 인자를 받게되면 에러가 발생한다.

fp.concat([1, 2])([3, [4]]);
// => [1, 2, 3, [4]]

fp.concat([1, 2])([3, 4])([5, 6]);
// => Uncaught TypeError: fp.concat(...)(...) is not a function
profile
고양이 앓이 중인 프론트엔드 개발자

0개의 댓글