목표:
const users = [
{ id: 1, name: "Alice", age: 25, active: true },
{ id: 2, name: "Bob", age: 30, active: false },
{ id: 3, name: "Charlie", age: 22, active: true },
{ id: 4, name: "David", age: 35, active: false },
];
const activeUserNames = users
.filter((user) => user.active)
.map((user) => user.name);
console.log(activeUserNames); // ["Alice", "Charlie"]
목표:
const orders = [
{ orderId: "A1", amount: 100 },
{ orderId: "A2", amount: 250 },
{ orderId: "A3", amount: 75 },
{ orderId: "A4", amount: 300 },
];
const totalOrderAmount = orders.reduce((acc, order) => acc + order.amount, 0);
console.log(totalOrderAmount); // 725
목표:
const products = [
{ name: "Laptop", category: "Electronics", price: 1000 },
{ name: "Shirt", category: "Clothing", price: 20 },
{ name: "Phone", category: "Electronics", price: 500 },
{ name: "Jeans", price: 50 },
];
const productsByCategory = products.reduce((acc, product) => {
const category = product.category || "Uncategorized";
if (!acc[category]) {
acc[category] = [];
}
acc[category].push(product.name);
return acc;
}, {});
console.log(productsByCategory);
/*
{
Electronics: ["Laptop", "Phone"],
Clothing: ["Shirt"],
Uncategorized: ["Jeans"]
}
*/
목표:
const students = [
{ name: "Eve", score: 85 },
{ name: "Frank", score: 92 },
{ name: "Grace", score: 78 },
{ name: "Helen", score: 95 },
];
// 1. score 기준 내림차순 정렬
const sortedStudents = [...students].sort((a, b) => b.score - a.score);
// 2. rank 속성 추가
sortedStudents.forEach((student, index) => {
student.rank = index + 1;
});
console.log(sortedStudents);
/*
[
{ name: "Helen", score: 95, rank: 1 },
{ name: "Frank", score: 92, rank: 2 },
{ name: "Eve", score: 85, rank: 3 },
{ name: "Grace", score: 78, rank: 4 }
]
*/
목표:
const employees = [
{ id: 1, name: "John", skills: ["JavaScript", "Python"] },
{ id: 2, name: "Jane", skills: ["React", "Node.js"] },
{ id: 3, name: "Jim", skills: ["Python", "Django"] },
];
const pythonDevs = employees
.filter((employee) => employee.skills.includes("Python"))
.map(({ name, skills }) => ({ name, skills }));
console.log(pythonDevs);
/*
[
{ name: "John", skills: ["JavaScript", "Python"] },
{ name: "Jim", skills: ["Python", "Django"] }
]
*/
배열에서 중복된 값을 제거하세요.
const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = [...new Set(numbers)];
console.log(uniqueNumbers); // [1, 2, 3, 4, 5]
배열의 중첩된 구조를 한 단계로 펼치세요.
const nestedArray = [1, [2, 3], [4, [5, 6]]];
const flatArray = nestedArray.flat(2);
console.log(flatArray); // [1, 2, 3, 4, 5, 6]