indongyoo ๋์ ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๋ฉด์ ์ฐ์ตํด๋ณด์!
๋ฉ์๋๋ง ๋ด์๋ ์ด์ฐจํผ ๋จธ๋ฆฌ์ ๋ค์ด์ค์ง ์๋๋ค!!!๐คฆ๐ปโ๐คฆ๐ปโ๐คฆ๐ปโ
์ด์ฐจํผ ์๋ ์๋ ๋ฉ์๋๋ค์ ํ์ฉํ๋ฏ๋ก ์๋ฏธ๋ ๊ฐ์ด ์ค๋๊น...?!
๋ญ๊ฐ forEach
์ ๋งค์ฐ ๋น์ทํ๊ฒ ์๊ฒผ๋ค.
const _ = require('underscore');
// _.each : each์ ๋น์ทํ๊ฒ ๋์ํ์ง๋ง ์กฐ๊ธ ๋ค๋ฅด๋ค.
_.each([1,2,3], (val, i, list) => {
console.log(val, i, list);
});
// 1 0 [ 1, 2, 3 ]
// 2 1 [ 1, 2, 3 ]
// 3 2 [ 1, 2, 3 ]
// _.each์ forEach์ ์ฐจ์ด์
// 1. forEach์ ๋ฆฌํด๊ฐ์ undefiend์ด๋ค.
let res = [1,2,3].forEach((val, i, list) => (val, i, list));
console.log(res); // undefined
// 2. ๊ฐ์ฒด์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
_.each({a: 1, b: 2}, (val, key, obj) => console.log(val, key, obj));
// 1 'a' { a: 1, b: 2 }
// 2 'b' { a: 1, b: 2 }
_.reject
: filter
์ ๋น์ทํ ๋์์ ํ๋ค. ํ์ง๋ง ์ญ์ immutable!_.contains
: ์๋ฏธ ๊ทธ๋๋ก ํฌํจํ๋ฉด true
_.isArray
: ๋ฐฐ์ด์ด๋ฉด true
const list = [1, 2, 3, 4, 5];
console.log(_.reject(list, (num) => num % 2 === 0)); // [ 1, 3, 5 ]
console.log(_.contains([1, 2, 3], 3)); // true
console.log(_.isArray([1, 2, 3])) // true
์๋์ฒ๋ผ ๋ฐฐ์ด ๋ด๋ถ์ ๊ฐ๋ค์ด key/value
์์ผ๋ก ๊ตฌ์ฑ๋ ๊ฐ์ฒด์ผ ๋ ์ฌ์ฉํ๋ค.
๋ ๋ฒ์งธ ์ธ์์ key๊ฐ์ผ๋ก ์ ๊ทผํ์ฌ value๋ค์ ๋ฐฐ์ด๋ก ๋ฆฌํดํ๋ค.
const brand = [
{ id: 1, name: "LMC"},
{ id: 2, name: "AderError"},
{ id: 3, name: "Covernat"},
{ id: 4, name: "Apple"},
{ id: 5, name: "Supreme"},
{ id: 6, name: "Nike"},
{ id: 7, name: "Liful"}];
console.log(_.pluck(brand, 'name'));
// [ 'LMC', 'AderError', 'Covernat', 'Apple', 'Supreme', 'Nike', 'Liful' ]
๋ฐ์๋ ํจ์๋ฅผ ์คํํ์ฌ ๋์จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋๋ก ๋ฐ๊พธ๋ ํจ์์ด๋ค.
๊ฒฐ๊ณผ๋ง ๋ค์ง๋ ๊ฒ์ด ์๋๋ผ ํจ์๋ฅผ ์คํํ ํ์ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ง๋ ๊ฒ์ด๋ค.
const isZero = (n) => n === 0;
console.log(isZero(0));
// true
const isNotZero = _.negate(isZero);
console.log(isNotZero(0));
// false
undefined
๋ง ๋ฆฌํดํ๋ ํจ์...!
console.log(_.noop());
console.log(_.noop(100));
console.log(_.noop([],[]));
์ฒด์ด๋์ผ๋ก ์ฌ์ฉํด ๋ด
์๋ค...๐
_.chain
์ ์ฌ์ฉํ๋ฉด ๋ง์ง๋ง .value()
๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ๊น์ง ๋ฉ์๋๋ฅผ ๊ณ์ ์คํํ ์ ์๋ค.
// functional
const arr = _.filter(
_.map([1,2,3], n => n * 2), n => n <= 4
);
console.log(arr) // [ 2, 4 ]
// Chaining
const arr2 = _.chain([1, 2, 3])
.map(n => n * 2)
.filter(n => n <= 4)
.value();
console.log(arr2) // [ 2, 4 ]