underscore.js 정리 - 2 (compact, range, uniq, without, flatten)

zeroeat·2022년 7월 19일
0

underscore

목록 보기
2/2
post-thumbnail

<내가 보려고 쓰는 벨로그>😊

이번 글도 Array나 Object를 다룰때 유용할 것 같은 함수를 정리해보자.

일단 _ 라는 객체로 method를 부르면된다
ex)
_.method

1. compact

compact는 배열 내 값들중 값이 false 인 데이터를 제외하고 리턴하는 함수다.

	let compactArr = [0, 1 , false, 2, 'a' , 50];
	console.log(_.compact(compactArr));
	// [1, 2, 'a', 50]

이전 글의 some 에서 다루었던 "true 인 값, false인 값" 의 조건과 똑같이 적용된다.

2. range

range는 from ~ to 까지 숫자배열을 생성해서 리턴해주는 함수다.

console.log(_.range(10));
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(_.range(30));
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
console.log(_.range(1, 15));
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
console.log(_.range(1, 15, 2));
// [1, 3, 5, 7, 9, 11, 13]

parameter가 1개이면 0부터 n까지,
parameter가 2개이면 m부터 n까지,
parameter가 3개이면 m부터 n까지 s 간격으로.

3. uniq

uniq는 쉽게말해서 중복제거 함수다.
이미 정렬이 된 배열이라면 두번째 parameter로 true를 넣도록 하자.
속도가 더 빠르다~
정렬 안된 배열인데 true넣으면 중복제거가 제대로 안된다~ => 중복제거 한번만 한다~

let uniqArr = [1, 16, 4, 11, 7, 11, 2, 3, 4]
console.log(_.uniq(uniqArr)); 	// [1, 16, 4, 11, 7, 2, 3]
// 정렬함수!
let sortedArr = _.sortBy(uniqArr); 
console.log(_.uniq(uniqArr, true)); // [1, 2, 3, 4, 7, 11, 16]

4. without

without은 "이 값 아닌 값들만 리턴!" 한다.

let withoutArr = [1, 2 ,3, 4, 5, 6, 8, 9, 10]
console.log(_.without(withoutArr, 1,2,8,9,10));
//  [3, 4, 5, 6]

5. flatten

flatten은 받은 Array의 depth를 제거해서 리턴한다.
두번쨰 paramter에 true를 넣으면 1 depth만 제거해서 리턴한다.

let flattenArr = [1, [2], [3, 4], [5, [6, [7]]]]
console.log(_.flatten(flattenArr)) // [1, 2, 3, 4, 5, 6, 7]
console.log(_.flatten(flattenArr , true)) // [1, 2, 3, 4, 5, [6, [7]]]

다음 글에서는 2개의 배열을 넣어서 연산하는 함수를 모아서 정리해보겠다!😊

profile
맨날 고민하는 개발자

0개의 댓글