나만의 작은 도서관
[TIL] 240618 캠프 65일차: JS 배열 사용법(특정 속성의 특정 값을 통해 객체 반환, forEach(elem, index, array)) 본문
Today I Learn
[TIL] 240618 캠프 65일차: JS 배열 사용법(특정 속성의 특정 값을 통해 객체 반환, forEach(elem, index, array))
pledge24 2024. 6. 18. 23:51오늘 배운 내용
객체가 들어있는 배열에서 특정 속성이 특정 값을 가지는 지 확인하는 법
배열에 객체가 들어있는 경우, 객체가 가지는 속성 중 특정 속성이 가지는 값으로 필터링하고 싶을 때가 있다. 이번 과제에서 몬스터 정보가 객체로 담겨있는 배열에서 몬스터 아이디를 통해 해당 객체를 가져오고 싶었는데 어떻게 해야할 지 몰랐다가 검색을 통해 알 수 있었다. 해결한 방법은 다음과 같다.
// find안에 다음과 같이 함수를 넣으면 객체 안의 속성 인 id가 monsterId와 일치하는 객체만 가져오게 된다.
const monsterData = MONSTER_CONFIG.find(monster => monster.id == monsterId);
array.forEach(elem, index, array)
자바스크립트에서 array.forEach메소드는 다양한 형태로 사용할 수 있는데, 위 제목과 같이 3개의 params를 받을 수 있다. 각각의 변수가 의미하는 바는 다음과 같다.
- elem: array타입에 들어있는 원소
- index: 해당 원소가 들어있는 인덱스
- array: 해당 배열
const numbers = [3, -1, 1, 4, 1, 5];
numbers
.filter((num) => num > 0)
.forEach((num, idx, arr) => {
// Without the arr argument, there's no way to easily access the
// intermediate array without saving it to a variable.
// 0보다 큰 원소와 양쪽 원소의 값을 왼쪽에 가까운 순으로 출력한다.
console.log(arr[idx - 1], num, arr[idx + 1]);
});
// undefined 3 1
// 3 1 4
// 1 4 1
// 4 1 5
// 1 5 undefined
핸들러와 헬퍼의 의미
핸들러는 이벤트가 발생했을 때, 수행하는 로직(함수와 같은)들을 다루는 존재들을 의미하며,
헬퍼는 복작합 로직을 단순화하는데 도움을 주는 존재들을 의미한다. 헬퍼같은 경우, 기능을 구현하는데 꼭 필요하지는 않지만, 핸들러의 개수가 많아지면 모든 핸들러에 대해 이벤트 처리하는 코드가 많아질 수 있으므로 보다 단순하고 정리된 코드흐름을 가져가기 위해서는 만들어두는 것이 좋다.
오늘 한 일
더보기
- 클라이언트와 서버가 가질 게임 규칙과 연관된 json파일(ex. monster.json)제작
- 해당 json파일을 통해 클라이언트 게임 프로그램에 적용되도록 game.js파일 변경
'Today I Learn' 카테고리의 다른 글
[TIL] 240620 캠프 67일차: HTML파일에서 script로 API 사용하기, 객체에서 속성의 값에 접근하는 2가지 방식: [ ] 와 . (0) | 2024.06.20 |
---|---|
[TIL] 240619 캠프 66일차: docker 컨테이너 접속 명령어, JS reduce() (0) | 2024.06.19 |
[TIL] 240617 캠프 64일차: Socket.io의 on과 emit (0) | 2024.06.17 |
[TIL] 240611~240613 58~60일차: 예비군으로 인한 불참 (0) | 2024.06.14 |
[TIL] 240614 캠프 61일차: docker를 사용하는 이유, redis가 좋은 이유 (0) | 2024.06.14 |