Library/Lodash
๐ Lodash ๊ฐ์ฒด ์กฐ์ ํจ์ ๋ชจ์
์ธํ_
2021. 11. 26. 13:41
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-