문제
classmates 라는 배열에 여러 학생의 나이와 이름이 있을 때,
1. 나이가 16살인 학생만 골라낸 후, candy: 10 을 각각 추가하세요.
2. 나이가 19살인 학생만 골라낸 후, name 뒤에 '어린이'를 붙여주세요.
해답
나이로 학생을 골라내는 것은 filter 를 사용하고,
그 골라낸 배열을 순회하면서 새로운 것을 추가할 때 map 을 사용한다.
const classmates = [
{name: "유리", age: 19},
{name: "철수", age: 16},
{name: "영희", age: 16},
{name: "수진", age: 8},
]
// 1. 나이가 16살인 학생만 골라낸 후, candy: 10 개씩 각각 추가
const classFilter1 = classmates.filter((item) => item.age === 16);
classFilter1.map((item) => item.candy = 10);
console.log(classFilter1); // [{ name: '철수', age: 16, candy: 10 }, { name: '영희', age: 16, candy: 10 }]
// 2. 나이가 19살인 학생만 골라낸 후, name 뒤에 "어린이" 붙이기
const classFilter2 = classmates.filter((item) => item.age === 8);
const result = classFilter2.map((item) => {
return {
name : item.name + '어린이',
age: item.age,
}
}
)
console.log(result); // [ { name: '수진어린이', age: 8 } ]
문제
fruits 라는 배열에 과일의 번호와 이름이 있을 때,
숫자가 짝수인 과일만 화면에 나오도록 만들어주세요.
해답
1. filter를 사용해 숫자가 짝수인 과일들만 골라낸다.
2. map 을 이용하여 과일들 각각을 화면에 뿌려준다.
const fruits = [
{ num: 1, name: "사과" },
{ num: 2, name: "수박" },
{ num: 3, name: "오렌지" },
{ num: 4, name: "키위" },
{ num: 5, name: "바나나" },
{ num: 6, name: "파인애플" },
{ num: 7, name: "복숭아" },
];
// 숫자가 짝수인 과일만 필터링
const numFilter = fruits.filter((item) => {
return item.num % 2 === 0;
});
// 필터링된 과일들을 화면에 나오도록 만들기
numFilter.map((item) => {
return document.write(`<h1>num: ${item.num} / name: ${item.name}</h1>`);
});
'Javascript' 카테고리의 다른 글
[Javascript] .padStart()를 사용한 숫자 앞에 0 넣기 (0) | 2023.08.30 |
---|---|
[Javascript] 탭메뉴 만들기 (id값을 가져와서 만들기) (0) | 2023.08.28 |
[Javascript] .map() (0) | 2023.08.21 |
[Javascript] .substring() (0) | 2023.08.16 |
[Javascript] .split() (0) | 2023.08.16 |