앞선 이터러블 프로토콜과 map을 공부하면서 사용자 정의로 이터러블한 객체를 순회하면서 값을 매핑했다. const map = (f, iter) => { const res = []; for (const p of iter) { res.push(f(p)); } return res; }; let m = new Map(); m.set('a', 10); m.set('b', 20); const it = m[Symbol.iterator](); it.next(); it.next(); it.next(); map(([k, a]) => [k, a * 2], m); 이터러블을 따르는 객체는 임의로 만든 map 함수에 잘 작용하는 이터러블 객체이다. filter 함수 const products = [ { name: '허니버터칩'..
ROOT
Map 메서드 const products = [ { name: '허니버터칩', price: 1500 }, { name: '벌집핏자', price: 1800 }, { name: '치킨팝', price: 800 }, { name: '에낙', price: 500 }, ]; 위와 같은 배열이 있다고 할 때, 이 배열 속 요소들의 객체에서 name만 뽑아낼 수 있는 방법은 간단하게 두 가지가 있다. const names = []; for (const product of products) { names.push(product.name); } 이와 같이 순회를 하면서, 각 객체 안에 접근하여 name들을 새로운 빈 배열에 push하면서 증가시키는 방식이다. 이를 함수형 프로그래밍으로 풀어서 접근하면 아래와 같이 작성..
기존의 이터러블 객체 순회 기존의 이터러블 객체(순환이 가능한 객체)는 for i++과 같은 형태로 이터러블 객체를 순환하였다. const students = ['동규', '소현', '찬진', '요셉']; for (let i = 0; i < students.length; i++) { console.log(students[i] + '님은 제 친구입니다.'); } 위와 같이 전체 이터러블 객체를 순환하도록 하였다. 이뿐만 아니라 문자열도 이터러블한 자료형이기 때문에 위와 같이 할 수 있다. const alphabet = 'abcdef' for (let i = 0; i < alphabet.length; i++) { console.log(alphabet[i]); } 즉, 숫자를 키로 하여 이터러블한 객체를 순회..
TypeScript를 사용하여 NestJS + TypeORM 개발을 하던 도중, 문자열을 프로퍼티명으로 적어야 하는 상황이 생겼습니다. 상황상 컬럼을 Enum으로 둘 수 없었고, Enum의 요소들 각각을 컬럼으로 집어넣었습니다. 예를 들어서 element1, element2, element3가 하나의 컬럼에 있는 것이 아니라 각각의 element1, element2, element3로 컬럼이 독립적으로 존재하는 것입니다. 이 상황에 프론트에서 Enum에 속하는 element1, element2, element3을 someElement라는 속성의 값으로 전달을 하게 되면, 이를 업데이트를 해야 하는 상황이 왔었는데, 기존에는 프로퍼티에 element1, element2, element3를 이름으로 적어야 ..