Javascript30 - Day7 Array 연습

사용할 Array

  const people = [
      { name: 'Wes', year: 1988 },
      { name: 'Kait', year: 1986 },
      { name: 'Irv', year: 1970 },
      { name: 'Lux', year: 2015 }
    ];

    const comments = [
      { text: 'Love this!', id: 523423 },
      { text: 'Super good', id: 823423 },
      { text: 'You are the best', id: 2039842 },
      { text: 'Ramen is my fav food ever', id: 123523 },
      { text: 'Nice Nice Nice!', id: 542328 }
    ];


문제

문제 1 : Is at least one person 19 or older


Array.prototype.some()

    const isAdult = people.some((person) => {
      const currentYear = (new Date()).getFullYear();
      return currentYear - person.year >= 19;
    });



문제 2 : Is everyone 19 or older?


Array.prototype.map()

  const everyAdult = people.every((person) => new Date().getFullYear()
      - person.year >= 19);
  • map을 사용하여 array의 양식을 재구성하여 return 한다.



문제 3 : Find the comment with the ID of 823423


Array.prototype.sort()

  const findId = comments.find((comment) => comment.id === 823423);

index는 0부터 시작해서, 연속된 두 요소의 값을 비교해서 정렬한다.



문제 4 : Delete the comment with the ID of 823423


Array.prototype.filter()


방법 1

    const deleteId = comments.findIndex((comment) => comment.id === 823423);
    comments.splice(deleteId, 1);


splice를 활용해 comments array에서 deleteId index에서부터 하나를 삭제한다.


방법 2

    const deleteId = comments.findIndex((comment) => comment.id === 823423);
    const newArray = [
      ...comments.slice(0, deleteId),
      ...comments.slice(deleteId + 1)
    ]


slice로 0, deleteId 까지의 값들과 deleteId + 1부터 마지막 까지의 값들을 반환한다. … 스프레드 연산을 하여 array의 요소들을 꺼내서 반환한다.