23.1.12

Han Lee·2023년 1월 12일
0

TIL

목록 보기
34/43

프로그래머스 OX퀴즈

["3 - 4 = -3", "5 + 6 = 11"] 이렇게 나오는것을 평가해야한다

  1. 배열안의 값을 각각으로 나눈다.
  2. 각 값에서 =을 기준으로 나눠준다.
  3. =을 기준으로 같으면 O, 틀리면 X를 반환한다.

for문으로 돌려서 나온는 값은 [0]은 "3 - 4 = -3"처럼 나올것이다.
문자열로 나오니 split('=')을 이용해서 비교해주면 되는데...

"3 - 4"가 문자열이다. 여기서 구글찬스를 통해서 eval을 알게 되었다.
문자로된 자바스크립트 코드를 실행하는 함수인데 절대로 사용하지 말것이라고 적혀있다... 하지만 문제를 풀뿐이니 일단 해보자.

function solution(quiz) {
   let result = []
  for(let i =0; i < quiz.lenght; i++){
  let quest = eval(quiz[i].split('=')[0])
  let answer = eval(quiz[i].split('=')[1])
  if(a === b){
  result.push("O")
  } else{
  result.push("X")
  }
  }
  return result
}

해결.. 다른 답을 보니 다들 map을 이용했다.
일단 알아보자..

for of / for in

어떻게 사용되는지나 자세한 설명은 인터넷에 많이 있다. -> 나만의 요약

  • of는 배열에서 사용되는
  • in은 객체에서 사용되는

filter

조건을 충족하는 요소를 찾는

let users = [
  {id: 1, name: "John"},
  {id: 2, name: "Pete"},
  {id: 3, name: "Mary"}
];

// 앞쪽 사용자 두 명을 반환합니다.
let someUsers = users.filter(item => item.id < 3);

map

요소 전체를 대상으로 함수를 호출하고 결과를 배열로 반환

let lengths = ["Bilbo", "Gandalf", "Nazgul"]
let result = lengths.map(item => item.length);
alert(result); // 5,7,6
profile
렌덤형 인간

0개의 댓글