나라는 허접 개발자가 며칠전 UnderScore.js라는 라이브러리를 발견하게 됐다.
Array나 Object를 다룰때 짜증나는 순간들이 많았는데 UnderScore를 보니
알아두면 쓸만한것들이 꽤 많아 보여서 기초적인 것부터 정리해두려고 한다.
일단 _ 라는 객체로 method를 부르면된다
ex) _.method
let someArr = [null, 0 , undefined, false]; console.log(_.some(someArr)); // false someArr = [null, 0 , 'a', false]; // true
Some은 배열에 속한 인자중 하나라도 true일시 true를 리턴한다.
1. 문자는 true로 인식함
2. 0이 아닌 숫자도 true로 인식함
3. false로 인식하는 변수 : null, 0 , undefined, false
Some은 두번째 parameter로 조건을 넣을 수 있다.
배열 내 인자중 조건에 만족하는 인자가 하나라도 존재할시 true를 리턴한다.
let someArr = [null , 0 , undefined, false]; console.log(_.some(someArr, (el) => { return el == 0 })) // true
Every는 Some과 사용하는 방법은 동일하지만 모든 인자가 조건을 만족해야 true를 리턴한다.
let everyArr = [1, 2, 3, 0]; console.log(_.every(everyArr)); // false (0 은 false) console.log(_.every(everyArr, (el) => { return el > -1 }) ); // true
Pluck은 Object Array를 원하는 키를 가진 배열로 리턴받을 수 있다. 글로 쓰니까 설명하기가 어려우니 예시를 보도록 하자
let pluckData = [ { "name" : "kim", "age" : 20 }, { "name" : "park", "age" : 25 }, { "name" : "lee", "age" : 15 } ] console.log(_.pluck(pluckData, 'name')); // ['kim', 'park', 'lee']
예시와 같이 object Array 안에서 특정 키만 가져와 비교하거나 사용할때 일일히 새 배열에 담아주지 않아도 되서 유용할 것 같다.
where은 SQL 사용하는 것 처럼 값을 필터링하여 조건에 부합하는 객체만 리턴받을 수 있다.
console.log(_.where(pluckData, {name : 'kim'})); // {"name" : "kim", "age" : 20}
물론 조건 필터링을 여러개 할 수 있다. console.log(_.where(pluckData, {name : 'kim', "age" : 19})); // []
partiton은 array를 두 그룹으로 묶어서 리턴한다.
[[만족 array], [불만족array]]로 리턴
let partitionArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] console.log(_.partition(partitionArray, (el) => { return el % 2 == 0})); // [[2, 4, 6, 8, 10], [1, 3, 5, 7, 9]]
생각날때 마다 5개씩 순차적으로 올려보자.
그리고 이번기회에 정리를 잘 하는 실력도 키워보자.😎