수준별 학습 과제로 map과 filter를 사용하여 문제를 풀어 보았다.
👇👇👇
1. 각 숫자의 제곱을 구하는 문제
const numbers = [1, 2, 3, 4];
//한 줄로 표현
const squares = numbers.map((item) => item * item);
//두 줄로 표현
const squares = number.map((item) => {
return item * item
});
console.log(squares); // [1, 4, 9, 16]
2. 각 객체의 사용자 이름만을 포함하는 새 배열 생성
const users = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 },
];
const names = users.map((item) => item.name);
console.log(names); // ["Alice", "Bob"]
3. 주어진 숫자 중 짝수인 경우에만 출력
const numbers = [1, 2, 3, 4, 5, 6];
//한줄로 표현
const evens = numbers.filter((item) => item % 2 === 0 ? item : null;
//두줄로 표현
const evens = numbers.filter((item) => {
return item % 2 === 0 ? item : null;
});
console.log(evens); // [2, 4, 6]
4. isActive가 true인 사용자 중 30세 이상인 사용자를 구하는 문제
const users = [
{name: "Alice", age: 25, isActive: true},
{name: "Bob", age: 30, isActive: true},
{name: "Charlie", age: 35, isActive: false}
];
const activeUsersOver30 = users.filter((item) => {
return item.isActive && item.age >= 30 ? item : null;
});
console.log(activeUsersOver30); // [{name: "Bob", age: 30, isActive: true}]