ETC/알고리즘 & 문법

제네릭을 이용한 Group by const groupBy = (array: T[], key: K) => { let map = new Map(); array.forEach(item => { let itemKey = item[key]; if (!map.has(itemKey)) { map.set(itemKey, array.filter(i => i[key] === item[key])); } }); return map; } 위 함수는 제네릭 T의 배열과 T의 key로 소속되어있는 K를 인자로 받는다. array를 순회하며 Map에 Key가 존재하는지 확인 후, 없다면 키를 생성하고 배열 내에 동일한 키를 가진 항목을 Map에 추가한다. const items = [ {type: "dog", name: "fred"}..
var dateObj = new Date(); var month = dateObj.getMonth() + 1; //months from 1-12 var day = dateObj.getDate(); var year = dateObj.getFullYear(); newdate = year + "/" + month + "/" + day; getUTCMonth(), getUTCDate(), getUTCFullYear() 등과 같이 UTC가 포함된 것은 UTC기준 Date 월(month)은 0부터 시작 (1월은 0, 2월은 1) getDay()는 요일(0-6) getDate()는 날짜(1-31) getYear()은 현재 연도에서 1900 값을 뺀 값 반환 (현재는 Deprecated)
Map() Map()은 Javascript ES6의 key-value 쌍의 컬렉션이다. key는 중복될 수 없다. key를 이용해 값을 찾거나(get), 설정(set)할 수 있다. key로 사용할 수 있는 데이터 형은 string, symbol, object, function이며 number는 사용할 수 없다. 엔트리 조회와 추가 - map.get(), map.set() const menu = new Map() menu.set('001', {code: "001", name: "콜라"}) menu.set('002', {code: "002", name: "환타"}) console.log(menu.get('001'))// {code: '001', name: '콜라'} // const lastName = new..
Set()Array.from과 spread syntax인 ...을 사용 가능하다.const x = new Set([ 1, 2, 3, 4 ]);const y = Array.from(x);console.log(y); // = [ 1, 2, 3, 4 ]const z = [ ...x ];console.log(z); // = [ 1, 2, 3, 4 ] Met()map도 Array.from과 spread syntax(...)의 사용이 가능하다.const map = new Map([[ 1, 'one' ],[ 2, 'two' ]]);const newArr1 = [ ...map ]; const newArr2 = Array.from( map );console.log(newArr1); // [[ 1, 'one' ],..
함수형프로그래밍의 핵심 중 하나는 순수 함수이다. 순수 함수란 상위 혹은 외부의 상태에 영향을 받지 않도록 부수 효과가 없고 동일한 인자가 주어졌을 때 항상 같은 값을 반환하는 함수이다. 이러한 특징은 평가 시점을 따질 필요가 없다. 이유는 동일한 인자를 함수에게 주었을 때 다른 값이 나온다면 함수를 평가할 시점이 애매해지지만 동일한 인자가 주어졌을 때 항상 같은 값을 반환한다면 어디서든 평가가 가능하기 때문이다. 부수 효과는 상위 혹은 외부의 상태를 변경하는 것을 말한다. 순수 함수와 비 순수 함수 순수 함수 function add(a, b) { return a + b; } console.log(add(10, 5));// 15 console.log(add(10, 5));// 15 console.log(..
언제나 코드를 작성해야 할 때 고려해야 되는 것은 재사용성이다. Java와 같이 아주 강한 객체지향 언어와 같이 재사용이 가능한 컴포넌트를 만들게 도와주는 것은 TypeScript에도 존재한다. 이름은 제네릭(Generic)이다. 먼저 들어온 인수를 무조건 반환하는 함수를 만들어보자.function fun(num : number):number { return num;}이는 "any" 타입으로도 작성이 가능하다.function fun(num : any):any { return num;}"any" 타입을 사용한다는 것은 num이 어떤 타입이든 받고 반환한다는 의미에서 제네릭이라 할 수 있다. 하지만 이는 반환을 할 때 본질적인 타입을 잃게 된다. 만약 number타입의 값이 들어온다면 반환은 number가 ..
장바금
'ETC/알고리즘 & 문법' 카테고리의 글 목록