[PreStudy-Review] 2주차 리뷰

13842 단어 JavaScriptJavaScript

2주차 스터디 리뷰와 보충할 내용을 정리한다.

1. Splice

splice 메서드 사용 시 삭제되는 것의 개념이 헷갈렸다.

pop 처럼 삭제된 것을 리턴하고, 기존 배열에서가 삭제되어 있는 것으로 이해하면 된다.

비교해보자.

✔️Assignment

기념사진을 찍으려고 하는데, 키 큰 사람들이 앞으로 나와있습니다.

splice method를 이용해 175cm 이상인 사람은 뒤에 설 수 있도록 코드를 작성해주세요.

(단, splice 메서드 괄호 안에는 무조건 음수만 적용해야 합니다)

let lane1 = [{'철수':'150cm'}, {'영희': '153cm'}, {'바둑이': '155cm'},{'밍키': '160cm'}, {'살구' : '168cm'}, {'두팔': '175cm'}, {'여름': '180cm'}, {'소헌': '181cm'}];

extractOver175(lane1) // [{'두팔': '175cm'}, {'여름': '180cm'}, {'소헌': '181cm'}];

🗝️Solution

function extractOver175(list) {
  //괄호 안은 음수만 들어가야 합니다.
  let extractedPeople = list.splice(-3)
    
  return extractedPeople;
}

console.log(extractOver175(lane1)); // [{'두팔': '175cm'}, {'여름': '180cm'}, {'소헌': '181cm'}];

📌정리

splice 는 변수 할당이 필수적인 메서드가 아니다. 예를 들면

let arr = [1, 2, 3, 4, 5]
arr.splice(2,2)

위의 명령어 실행 시 ''arr 배열에서 2번 인덱스부터 2개 삭제'' 작업이 이루어져서

console.log(arr); // [1, 2, 5]

이와 같은 결과가 나온다.

그런데 만약 splice 메서드를 사용하여 변수에 할당할 경우,

let arr = [1, 2, 3, 4, 5]
let arr_new = arr.splice(2,2)

console.log(arr_new); // [3, 4]

이와 같이 제거된 부분이 변수에 할당된다.

2. Object, key, value

기존 풀이에서 Object.values 를 사용했지만

Python 에서 하던 것처럼 직접 배열.키값 으로 value 값을 불러오는 방법도 있다.

✔️Assignment

courses 라는 배열이 있습니다.

let courses = [
{level:'easy', subject: "English" }, 
{level:'hard', subject: "Mathmatic" }, 
{level:'medium', subject: "Literature" }, 
{level:'hard', subject: "Science" }, 
{level:'medium', subject: "Socialogy" }
];

level이 'hard'인 과목들로만 이루어진 새로운 배열을 filter()를 이용하여 반환해주세요.결과는 아래와 같아야 합니다.

[
  { level: 'hard', subject: 'Mathmatic' },
  { level: 'hard', subject: 'Science' }
]

🗝️Solution

기존 풀이

function filtered() {
 return courses.filter((value)=> Object.values(value)[0] == "hard")
}

Object 를 사용해 value 값을 배열로 받아서 조건에 맞는 데이터들을 filter 메서드로 반환했다.

새로 알게 된 방법을 활용한 풀이

function filtered() {
  return courses.filter((value)=> value.level == "hard");
}
  • 지정해준 파라미터 value 는 배열에서 하나의 요소(본 문제에서는 객체)를 가져온다.
  • 가져온 객체에서 level 을 key 값으로 적용해 value 값을 반환한다.

📌정리

Object 사용법

let obj = {
    player : 'curry', team : 'GSW', height : 190
}

console.log(Object.keys(obj)) // [ 'player', 'team', 'height' ]
console.log(Object.values(obj)) // [ 'curry', 'GSW', 190 ]
console.log(obj.player) // curry
console.log(obj.team) // GSW

일반화

객체, 키 값, 밸류 값이 주어졌다고 할 때

  • 키 값을 배열로 반환 : Object.keys(객체)
  • 밸류 값을 배열로 반환 : Object.values(객체)
  • 원하는 키 값에 대한 밸류 값을 반환 : 객체.키값

좋은 웹페이지 즐겨찾기