map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.
const array1 = [1, 4, 9, 16];
// Pass a function to map
const map1 = array1.map((x) => x * 2);
console.log(map1);
// Expected output: Array [2, 8, 18, 32]
JSX에서의 사용 예
<ul>
{toDos.map((toDo, index) => (
<li key={index} id={index}>
{toDo}
<button onClick={deleteBtn}>✕</button>
</li>
))}
</ul>
↑ array 요소들을 li element로 바꾸어 반환한다. (React는 li element 배열을 인식해 브라우저에 li들의 나열로 표시한다.)
map 함수의 두 번째 인자는 index를 나타낸다. 배열의 각 li 원소에 대해 id를 index로 주어 이후에 활용할 수 있다.
filter() 메서드는 주어진 배열을 내용 안의 조건에 따라 걸러낸다.
const words = ['spray', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter((word) => word.length > 6);
console.log(result);
// Expected output: Array ["exuberant", "destruction", "present"]
↑ 함수 내용이 true가 되면 남는다.(false는 버린다.)
JSX에서의 사용 예
const deleteBtn = (event) => {
const target = event.target.parentElement;
setToDos(
toDos.filter((item, index) => {
return index !== parseInt(target.id);
})
);
console.log(toDos);
};
↑ toDos 배열에서 index !== target.id가 true면 남긴다. (같으면 제거한다.)
map과 마찬가지로 두 번째 인자는 index를 나타낸다.
filter의 callback함수 인자 사용 방법
첫 번째 filter는 arr 배열의 값을 나타내는 a 인자를 사용한다. (callback의 첫 인자)
따라서 arr 중 짝수 2, 4만 남는다.
두 번째 filter는 arr의 index를 나타내는 a 인자를 사용한다. (첫 인자는 _로 건너 뜀)
따라서 0,2,4 index의 1,3,5만 남는다.
'Language > Javascript' 카테고리의 다른 글
Javascript 문자열 쪼개기 String.substring() (0) | 2024.06.26 |
---|---|
구조분해할당을 이용한 배열 swap (Distructing assignment) (0) | 2024.03.26 |
비동기 처리 (2) - Promise (0) | 2024.02.13 |
비동기 처리 (1) - Callback (1) | 2024.02.13 |
this 사용법 (0) | 2024.01.26 |