...
Lodash - 객체 조작 함수 정리
_.pick()
- 객체의 필요한 속성만 뽑을 때 쓴다.
var user = {
name: 'socratone',
password: '12345678'
};
// 클라이언트에게 보내주기 위해 user 객체에서 비밀번호를 뺀다.
_.pick(user, ['name']);
// { name: 'socratone' }
_.get()
- 객체에서 키 경로를 주어서 값을 가져온다.
var object = { 'a': [{
'b': { 'c': 3 }
}]
};
_.get(object, 'a[0].b.c');
// => 3
var object = { a: 1, b: 2, c: 3, e: { f: 5 } };
_.get(object, 'a');
// => 1
_.get(object, 'd');
// undefined
_.get(object, 'd', 4);
// 4
_.get(object, 'e.f');
// 5
_.omit()
- 객체에서 해당 키를 생략(제외)한 객체를 반환한다.
var object = { a: 1, b: '2', c: 3 };
_.omit(object, ['a', 'c']); // 키 a와 c를 제외하고 반환
// => { 'b': '2' }
_.omit(object, 'a'); // 키 a만 제외
// => { 'b': '2', 'c': 3 }
_.cloneDeep()
- 깊은 객체 복사
- es6의 Object.assign() 같은경우 얕은복사로, 내부의 객체 값은 복사되지 않는다.
얕은 복사 Shllow Copy
얕은 복사란 객체를 복사할 때 원래값과 복사된 값이 같은 참조를 가리키고있는 것을 말한다.
객체안에 객체가 있을 경우 한개의 객체라도 원본 객체를 참조하고 있다면 이를 얕은 복사라고 한다.
즉, 어느 객체를 복사했는데, 완전히 독립적으로 복사된게 아니라 참조로 복사되어 원본 값이 바뀌면 복사된 값도 영향이 가는 것이다.
깊은 복사 Deep Copy
깊은 복사된 객체는 객체안에 객체가 있을 경우에도 원본과의 참조가 완전히 끊어진 객체를 말한다.
var object = {a: 10, b:{c: 15}};
let deep = _.cloneDeep(objects);
_.isEqual()
- 객체 내용 비교
var object = { 'a': 1 };
var other = { 'a': 1 };
object === other; // => false
_.isEqual(object, other); // => true
const one = {
fruit: '🥝',
nutrients: {
energy: '255kJ',
minerals: {
name: 'calcium'
}
}
};
const two = {
fruit: '🥝',
nutrients: {
energy: '255kJ',
minerals: {
name: 'calcium'
}
}
};
// Using JavaScript
JSON.stringify(one) === JSON.stringify(two); // true
// Using Lodash
_.isEqual(one, two); // true
# 참고자료
https://www.geeksforgeeks.org/lodash-introduction/?ref=gcse
https://lodash.com/docs/4.17.15
https://runebook.dev/ko/docs/lodash/-index-
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.