javascript의 find 함수와 같지만, 조금 더 편리하게 사용가능
_.find(배열, 찾는방법function)
let books = [
{title: "Three Little Pigs", price: 20, author: "Jacobs", rank: 1},
{title: "Alice in Wonderland", price: 25, author: "Carroll", rank: 2},
{title: "Seven Dwarfs", price: 35, author: "Disney", rank: 3},
{title: "Swallow's gift", price: 15, author: "Unknown", rank: 4},
];
let result;
// 기본
result = _.find(books, item => item.title === 'Alice in Wonderland')
// _.match 함수를 파라미터로 넣기
result = _.find(books, _.matches({ title : 'Alice in Wonderland' }))
// shorthand 표기법으로 더 줄이기
result = _.find(books, { title : 'Alice in Wonderland' })
_.compact( 배열 )
_.compact([0, 1, false, 2, '', 3]);
// [1, 2, 3]
_.take( 배열, [가져올 요소 수=1])
_.take([3, 5, 4, 7, 9], 3);
// [3, 5, 4]
_.uniq( 배열 )
_.uniq([1, 1, 3]);
// [1, 3]
_.flatten( 배열 )
const gridList2 = [
[
{x: 1, y: 1},
{x: 1, y: 2},
],
[
{x: 2, y: 1},
{x: 2, y: 2},
]
]
result = _.flatten(gridList2);
console.log(result) // [ {x: 1, y: 1}, {x: 1, y: 2}, {x: 2, y: 1}, {x: 2, y: 2} ]
_.sortBy(컬렉션, 정렬기준필드);
_.sortBy(컬렉션, [정렬기준필드1, 정렬기준필드2]);
_.filter( 콜렉션, 검색할 데이터 또는 콜백함수 )
var users = [
{ user: 'barney', age: 36, active: true },
{ user: 'fred', age: 40, active: false },
];
_.filter(users, (o) => !o.active);
// [ { 'user': 'fred', 'age': 40, 'active': false } ]
// _.matches 메소드가 생략된 형태
_.filter(users, { age: 36, active: true });
// === _.filter(users, _.matches({ 'age': 36, 'active': true }))
// [ { 'user': 'barney', 'age': 36, 'active': true } ]
// _.matchesProperty 메소드가 생략된 형태
_.filter(users, ['active', false]);
// [ { 'user': 'fred', 'age': 40, 'active': false } ]
// _.property 메소드가 생략된 형태
_.filter(users, 'active');
// [ { 'user': 'barney', 'age': 36, 'active': true } ]
_.size( 콜렉션 )
_.size([1, 2, 3])
// 3
_.size({ 'a': 1, 'b': 2 })
// 2
_.size('apple'
// 5
_.sampleSize( 콜렉션, [추출 갯수=1])
.sampleSize(_.range(1, 45), 7);
// 로또 번호 추출
객체에서 해당 키 값만을 가져온다. 없을 시 기본값을 줄 수 있다.
_.get( 객체, 가져올 키[, 기본값 ])
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
_.times( 반복횟수, 콜백함수 )
.times(3, _.constant(0));
// [0, 0, 0]
_.range( [시작], 종료, [증가 폭=1])
_.range(0, 6, 0);
// [0, 0, 0, 0, 0, 0]
_.range(4);
// [0, 1, 2, 3]
_.random(최소값, 최대값, 실수[boolean])
const randomNum1 = _.random(0,5)
const randomNum2 = _.random(5)
const randomNum3 = _.random(1.2, 5.8)
console.log(randomNum1) // 5
console.log(randomNum2) // 3
console.log(randomNum3) // 3.051234321