1. my-delicous-meal 을 MyDeliciousMeal로 바꾸는 함수 만들기(feat: reduce,split,slice,push,join)
function camelize(str) {
let splitedStr = str.split("-");
return splitedStr
.reduce((acc, curr) => {
acc.push(curr[0].toUpperCase() + curr.slice(1));
return acc;
}, [])
.join("");
}
2. filterRange(arr,4,10)이라고 적을때 arr안에 숫자가 4보다크고 10보다 작은 숫자를 return해라. 단! 같은숫자는 없어야하며 작은숫자부터 정리되어있어야함(feat: filter, reduce, includes, sort)
function filterRange(arr, from, to) {
const filtered = arr.filter(
(number) => number >= from && number <= to
);
return filtered
.reduce((acc, curr) => {
if (!acc.includes(curr)) {
acc.push(curr);
}
return acc;
}, [])
.sort((a, b) => a - b);
}
3. surname과 name의 조합을 만들어라.(feat: map)
let john = { name: "John", surname: "Smith", id: 1 };
let pete = { name: "Pete", surname: "Hunt", id: 2 };
let mary = { name: "Mary", surname: "Key", id: 3 };
let users = [john, pete, mary];
let UserMapped = users.map((user) => {
return {
fullName: user.name + user.surname,
id: user.id,
};
});
4. 나이순으로 정렬하기
let john = { name: "John", age: 25 };
let pete = { name: "Pete", age: 30 };
let mary = { name: "Mary", age: 28 };
let arr = [pete, john, mary];
arr.sort((a, b) => a.age - b.age);
5. 배열안에 숫자 무작위로 섞기(feat: sort, Math.random)
let arr = [1, 5, 6, 3, 2];
function shuffle(arr) {
arr.sort(() => Math.random() - 0.5);
}
6. 월급 합계 구하기(feat: Object.values)
let salaries = {
John: 100,
Pete: 300,
Mary: 250,
};
function sumSalaries(obj) {
const moneyArr = Object.values(obj);
let total = 0;
moneyArr.forEach((money) => (total += money));
console.log(total);
}
7. 가장 월급이 높은사람의 이름 반환하기(feat: Object.entries, for of)
let salaries = {
John: 100,
Pete: 300,
Mary: 250,
};
function topSalary(salaries) {
let maxName = null;
let max = 0;
for ([personName, salary] of Object.entries(salaries)) {
if (max < salary) {
max = salary;
maxName = personName;
}
}
console.log(maxName);
}