자바스크립트 자료형2

이경준·2021년 2월 7일
0

자료형 연습

목록 보기
2/3

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);
}
profile
내가 기억하기위한 블로그

0개의 댓글