✏️작성자: 이서우
javaScript 기반 node.js 서버 구축에 유용하게 활용되는 라이브러리인 lodash를 소개하려 한다.
이러한 라이브러리들은 앱잼 시에도 유용하게 쓰일 수 있다고 생각한다.
인자로 주어진 배열들을 기존 배열에 합쳐서 새 배열을 return한다.
이 때, 기존 배열을 변하지 않는다.
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// => [1, 2, 3, [4]]
console.log(array);
// => [1]
주어진 배열에서 원하는 값의 위치를 찾아 인덱스를 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해요)
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'
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']
collection 값들을 원하는 필드를 기준으로 정렬한다. SQL 문에서 가져온 data들을 원하는 순서로 가공할 때 사용하면 편리하다.
collection 값들을 원하는 필드를 기준으로 정렬해줘요. SQL 문에서 가져온 data들을 원하는 순서로 가공할 때 사용하면 편리해요.
_.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([2, 1], [2, 3]);
// => [1]