배열분해, 객체분해, 매개변수분해

developer.do·2023년 2월 12일
0

배열분해

const scores =[9876,8765,7654,6543,5432,4321,3210,2100,1000]

만약 여기서 가장 맨앞의 숫자를 꺼내려면?

const highScores = scores[0]
const secondScores = scores[1]

하지만 조금 더 편하게 해보자 바로 배열 분해를 이용해서...

const [gold,silver, brown, ...everyElse] = scores
gold -> 9876
silver -> 8765
brown -> 7654
everyElse -> 6543,5432,4321,3210,2100,1000
가나온다.

객체분해

const user = {
  email: "harvy@gmail.com",
  password: "123456",
  firstName: "Harvey",
  lastName: "Milky",
  born: 1930,
  died: 1978,
  bio: "Harvey Bernad",
  city: "San francisco",
  state: "California",
};

console.log(user.firstName);

일일이 치기가 귀찮아진다.

따라서 객제분해를 통해 아래와 같이 쓴다면 편하게 꺼낼 수 있다.
const { email, password, firstName, lastName, born } = user;
function fullName({ firstName, lastName }) {
  return `${firstName} ${lastName}`;
}

fullName(user);
-> Harvey Milky가 나옵니다.
즉 user.firstName, user.lastName이 나오기 때문이죠

매개변수분해

const moives = [
  {
    title: "amandeus",
    score: 99,
    year: 1984,
  },
  {
    title: "bbbbb",
    score: 88,
    year: 1975,
  },
  {
    title: "ccccc",
    score: 90,
    year: 1965,
  },
  {
    title: "ddddd",
    score: 95,
    year: 1965,
  },
];

// const result = moives.filter((movie) => movie.score > 90);
const result = moives.map((movie) => `${movie.title} is rated ${movie.year}`);
console.log(result);

-> ['amandeus is rated 1984', 'bbbbb is rated 1975', 'ccccc is rated 1965', 'ddddd is rated 1965']

구조분해를 이용해보자
const result = moives.map(
  ({ title, score, year }) => `${title} (${year}) is rated ${score} `
);

0개의 댓글