해당 문제의 경우 이항에 대한 가감 연산을 수행하기 때문에 주어지는 값이 일정합니다. 즉 공백을 기준으로 분할을 하게 되면 두개의 피연산자와 하나의 연산자, 하나의 등가 기호 및 하나의 결과값 총 다섯개가 주어지게 되죠.
여기서 등가 기호는 활용을 안한다 치고, 나머지 구분된 값들을 각각 변수들에 할당한 후 연산자의 기호에 따라 더하기, 빼기 연산을 수행합니다. 물론 이 방법을 제외하고도 전달 받은 문자열을 자바스크립트에서 해석 가능한 상태라면 표현식을 수행하도록 하는 eval 메서드를 사용하면 쉽게 해결이 되기도 하지만
이 문제의 의도 자체가 eval 보다는 각 요소의 활용에 중점을 두지 않았나 싶어서 해당 메서드로 풀지는 않았습니다. (다만 eval을 이용하는 답안 또한 올려두겠습니다.)
// 1. eval을 사용하지 않는 방법 function solution(quiz) { const result = []; quiz.forEach((line) => { let letterArray = line.split(" "); let operand1 = Number(letterArray[0]); let operand2 = Number(letterArray[2]); let operator = letterArray[1] let letterResult = Number(letterArray[4]); result.push(letterResult === (operator === "+" ? operand1 + operand2 : operand1 - operand2) ? "O" : "X") }); return result; } // 2.eval을 사용한 방법 function solution(quiz) { const answer = []; quiz.forEach((line) => { let letterArray = line.split("="); let calc = letterArray[0]; let result = Number(letterArray[1]); let trueResult = eval(`${calc}`) answer.push(trueResult === result ? "O" : "X") }) return answer; }