이번 글도 Array나 Object를 다룰때 유용할 것 같은 함수를 정리해보자.
일단 _ 라는 객체로 method를 부르면된다
ex) _.method
compact는 배열 내 값들중 값이 false 인 데이터를 제외하고 리턴하는 함수다.
let compactArr = [0, 1 , false, 2, 'a' , 50]; console.log(_.compact(compactArr)); // [1, 2, 'a', 50]
이전 글의 some 에서 다루었던 "true 인 값, false인 값" 의 조건과 똑같이 적용된다.
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 간격으로.
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]
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]
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개의 배열을 넣어서 연산하는 함수를 모아서 정리해보겠다!😊