
[사전캠프 10일차]
- 문제를 보고 그냥 뒤집으면 되는 것 아닌가? 라는 생각이 1차
- 아..넌 사람이 아니지..라는 생각이 2차
- 입력된 숫자를 나눠야 한다. 하나하나 쪼개야 하기에 문자열 변환이 필요
- 문자열로 변환 후 각 문자를 1개,1개 각 배열 방에 집어 넣기위해 쪼개기
- 그리고 순서를 뒤집고, 새 방에 집어 넣기
function solution(n) { let answer = [] let temp = String(n).split('').reverse() // String으로 문자열로 변환 // split으로 나누기 -> ('')공백으로 나눔 // reverse 로 뒤집기 for (let i = 0; i < temp.length; i++) { answer.push(parseInt(temp[i])) // tmep에 만든 뒤집은 문자를 answer에 붙이기 } return answer; }
- 처음 answer에 붙여넣을 때 정수형으로 선언한지 않았다. 그랬더니 미리보기 결과가..
자연수를 넣으면 잘 표출은 된다. 하지만 이게뭘까...? 숫자를 원소로 가지는 배열이라고 해서 정수형으로 만들어주었다.
결과값도 잘 나온다.
완성 MBTI test
스프레드 구문, 전개구문, 스프래드 문법, 스프레드 연산자 등으로도 검색하면 확인이 가능하다.
// 유효성 검사
if ([...formData.values()].length < 12) {
alert("모든 항목을 선택해주세요.");
return;
}
formData에는 radio타입의 input태그들이 들어가 있다. 그 값이 체크가 되었는지 확인하고, 체크된 갯수가 우리가 만든 문항의 갯수보다 작다면 제출하지 않은 답변이 있기 때문에 확인해 보라는 팝업창을 띄우도록 하였다.
여기서 각 값들values을 펼쳐 배열로 만들어주기 위해서 formData앞에 ...를 사용 하였고, 그 배열을 담기위해서 []로 묶어 주었다.
if..else문이 총 4회 들어갔다.삼항연산자를 사용하여 1로 줄였고, 그것마저 줄이면?? 하면서 묶어버린것 까진 좋았으나.. 가독성이 좋지 않다.//if문 삼항연산자로 줄여보기
const personalityType = `${score.E > score.I ? "E" : "I"}${score.S > score.N ? "S" : "N"}${score.T > score.F ? "T" : "F"}${score.J > score.P ? "J" : "P"}`;
코드를 줄이는 것도 좋지만, 나중을 위해서도 가독성이 좋은 방향으로 선택해서 코드를 작성해야겠다는 생각이든다.
참고 : 튜터님, 다른조분들