무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
select 배열 이해를 도와주세요!
안녕하세요, 알고리즘 개선하기 강의를 들은 이후, 새로 짜여진 알고리즘의 원리(?)에 대해 공부하는 중입니다. 그런데, select 부분에 대한 이해가 어려워 질문 올려봐요 ㅠㅠ answer.addEventListener("click", function(){ //'answer' 버튼을 클릭했을 때 4 var children = document.querySelectorAll('.answerList'); for(let i = 0; i < children.length; i++){ children[i].disabled = true; // 버튼 비활성화 children[i].style.WebkitAnimation = "fadeOut 0.5s"; // 0.5초동안 main 섹션이 사라지면 children[i].style.animation = "fadeOut 0.5s" // 사용자가 어떤 한 버튼만 클릭해도, 다른 버튼들은 다 무시가 되고 모든 버튼들이 사라진다. } setTimeout(() => { var target = qnaList[qIdx].a[idx].type; // 우리가 선택한 버튼이 가지고 있는 타입이 target에 할당됨. //버튼을 클릭하는 순간에 바로 값 증가 for(let i = 0; i < target.length; i++){ select[target[i]] += 1; // 이 반복문이 돌고나면 사용자가 버튼을 클릭하였을 때, 12간지의 순서대로 해당하는 type의 값이 1씩 증가 } for(let i = 0; i < children.length; i++){ children[i].style.display = 'none'; // 버튼이 보이지 않게 } goNext(++qIdx); console.log(target); console.log(children.length); },450); //450 경과 시 }, false); 저는 이 for문 안에 들어있는 select[target[i]] += 1; 이 부분을 이해하기 위해calResult() 부분에 console.log(select);를 작성하였고, 임의로 선택된 모든 버튼에 대한 select값을 받을 수 있었습니다. // console.log(select); [2, 4, 3, 4, 4, 3, 4, 4, 2, 5, 1, 6]우선 저는 처음에 이 숫자들이 select 값이라는 것은 알고 있었으나 진짜 무엇을 의미 하는 지 알 수 없어 수기로 디버깅을 해보았습니다. 모든 버튼에 대한 type 값을 추적해가며 적어보았는데 qIdx 선택한 버튼 type 0 a [1, 2, 4, 9] 1 c [7, 4, 9, 11] 2 b [7, 9 ,11] 3 c [0, 3, 6, 5] 4 c [2, 5, 8] 5 b [0, 3, 6, 10] 6 a [1, 7, 11] 7 c [1, 7, 11] 8 b [1, 3, 6, 11] 9 a [4, 9, 11] 10 c [2, 5, 8] 11 a [3, 6, 4, 9]선택한 버튼에 대한 type 값의 누계를 도출해보니 [2, 4, 3, 4, 4, 3, 4, 4, 2, 5, 1, 6] // select console에 제가 요청했던 select 값과 동일한 배열이 나왔습니다. 또한 0~11까지의 띠 순서 그대로 오름차순으로 배정된 것을 발견할 수 있었습니다.제가 부족한 지식을 동원하여 생각한 바로는 type값을 누계할 때 오름차순으로 정렬하라는 어떤 메세지가 있지 않으면 [4, 2, 3, 4, 4, 3, 1, 4, 2, 6, 4, 5] 이런식으로 순서에 상관없이 해당 값에 대한 누계만 select에 담길 것으로 예상하였으나 오름차순으로 배열이 정리되어 정렬 원리가 궁금하였습니다. select[target[i]] += 1; 이 부분에서 자동으로 저희가 선택한 버튼들의 type을 select 배열에 넣을 때, 각 누계 값이 0 부터 11까지의 오름차순으로 자동 정렬되나요? const select = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];아니면 저희가 초반에 select에 0값으로 총 12개의 빈자릿수를 만들어 주었을 때부터각 자리당 0부터 11까지의 인덱스 주소가 자동 배정되는 건가요?아니면 이 배열(select)의 정렬방식에 대하여 놓친 부분이 있을까요? 도와주세요 ㅠㅠ
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
result 에서 결과가 안 나와요.
result 페이지에서 결과가 안 나와요resultname, resultdesc가 안 뜨는데이미지는 선택된 결과 제대로 뜨는 걸로 봐선 알고리즘엔 문제가 없는데 어디서 잘못된 걸까요? 제 코드는 이렇습니다. const main = document.querySelector("#main"); const qna = document.querySelector("#qna"); const result = document.querySelector("#result"); const endpoint = 6; const select = [0, 0, 0, 0, 0, 0]; function claResult() { console.log(select); var result = select.indexOf(Math.max(...select)); return result; } function setResult() { console.log(name); let point = claResult(); const resultname = document.querySelector('.resultname'); resultname.innerHTML = infoList[point].name; var resultImg = document.createElement('img'); const imgDiv = document.querySelector('#resultImg'); var imgURL = '../image/image-' + point + '.png'; resultImg.src = imgURL; resultImg.alt = point; resultImg.classList.add('img-fluid'); imgDiv.appendChild(resultImg); const resultDesc = document.querySelector('.resultDese'); resultDesc.innerHTML = infoList[point].desc; } function goResult() { qna.style.WebkitAnimation = "fadeOut 1s"; qna.style.animation = "fadeOut 1s"; setTimeout(() => { result.style.WebkitAnimation = "fadeIn 1s"; result.style.animation = "fadeIn 1s"; setTimeout(() => { qna.style.display = "none"; result.style.display = "block"; }, 450) }) setResult(); } function addAnswer(answerText, qIdx, idx) { var a = document.querySelector('.answerBox'); var answer = document.createElement('button'); answer.classList.add('answerList'); answer.classList.add('mx-8'); answer.classList.add('py-3'); answer.classList.add('mx-auto'); answer.classList.add('fadeIn'); a.appendChild(answer); answer.innerHTML = answerText; answer.addEventListener("click", function () { var children = document.querySelectorAll('.answerList'); for (let i = 0; i < children.length; i++) { children[i].disabled = true; children[i].style.WebkitAnimation = "fadeOut 0.5s"; children[i].style.animation = "fadeOut 0.5s"; } setTimeout(() => { var target = qnaList[qIdx].a[idx].type; for (let i = 0; i < target.length; i++) { select[target[i]] += 1; } for (let i = 0; i < children.length; i++) { children[i].style.display = 'none'; } goNext(++qIdx); }, 450) }, false); } function goNext(qIdx) { if (qIdx === endpoint) { goResult(); return; } var q = document.querySelector('.qBox'); q.innerHTML = qnaList[qIdx].q; for (let i in qnaList[qIdx].a) { addAnswer(qnaList[qIdx].a[i].answer, qIdx, i); } var status = document.querySelector('.statusBar'); status.style.width = (100 / endpoint) * (qIdx + 1) + '%'; } function begin() { main.style.WebkitAnimation = "fadeOut 1s"; main.style.animation = "fadeOut 1s"; setTimeout(() => { qna.style.WebkitAnimation = "fadeIn 1s"; qna.style.animation = "fadeIn 1s"; setTimeout(() => { main.style.display = "none"; qna.style.display = "block"; }, 450) let qIdx = 0; goNext(qIdx); }, 450); }
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
결과 계산하기에서 콘솔이 다르게 찍힙니다.
다른 분들도 비슷한 오류가 있었는데 봐도 해결이 안되어서 질문드립니다.현재 결과 계산하기 파트에서 오류가 생겨 이후 강의는 작성하지 않은 상태입니다. 질문1goResult 함수에서 const select = [] 로 정의된 변수를 실행시키니 0번 인덱스가 비어있음으로 뜹니다. 어떻게 해야 첫번째 인덱스도 함께 나올수 있을까요?function goResult(){ qna.style.WebkitAnimation = "fadeOut 1s" qna.style.animation = "fadeOut 1s" setTimeout(() => { result.style.WebkitAnimation = "fadeIn 1s" result.style.animation = "fadeIn 1s" setTimeout(() => { qna.style.display = "none"; result.style.display = "block"; }, 450) }) console.log(select) calResult() }function goNext(qIdx){ if(qIdx === endPoint){ goResult() return } let q = document.querySelector(".qBox"); q.innerHTML = qnaList[qIdx].q; for (let i in qnaList[qIdx].a){ addAnswer(qnaList[qIdx].a[i].answer, qIdx, i); }; let status = document.querySelector(".statusBar") status.style.width = (100/endPoint) * (qIdx+1) + "%" } 질문 2calResult 함수에서 console.log(resultArray)를 찍으니 아무것도 나오지 않습니다.어디서부터 잘못된지 모르겠습니다..ㅠ function calResult() { let pointArray = [ { name: "mouse", value: 0, key: 0 }, { name: "cow", value: 0, key: 1 }, { name: "tiger", value: 0, key: 2 }, { name: "rabbit", value: 0, key: 3 }, { name: "dragon", value: 0, key: 4 }, { name: "snake", value: 0, key: 5 }, { name: "horse", value: 0, key: 6 }, { name: "sheep", value: 0, key: 7 }, { name: "monkey", value: 0, key: 8 }, { name: "chick", value: 0, key: 9 }, { name: "dog", value: 0, key: 10 }, { name: "pig", value: 0, key: 11 } ]; for (i = 0; i < endPoint; i++) { let target = qnaList[i].a[select[i]]; for (j = 0; j < target.type.length; j++) { for (k = 0; k < pointArray.length; k++) { if (target[j] === pointArray[k].name) { pointArray[k].value += 1; } } } } let resultArray = pointArray.sort(function (a, b) { if (a.value > b.value) { return -1; } if (a.value < b.value) { return 1; } return 0; }); console.log(resultArray); let resultword = resultArray[0].key; return resultword; } 소스 코드만 보내드리면 보시기 힘들어하시는것같아 깃 파일도 같이 첨부하였습니다!https://github.com/kihet77/psychologyTestWeb/tree/main/MyMBTI-main/start
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
다음 버튼을 누르면 다음질문으로 넘어가게 만들고 싶어요.
안녕하세요.강의 잘 듣고 있습니다.다음 문제를 넘어갈때 답을 고르는게 아니라다음 버튼을 만들어서 그 버튼을 누르면 넘어가게 만들고 싶은데요. 어떻게 코드를 짜면 될지 너무 고민입니다 ㅠㅠ 혹시 알려주실 수 있나요? 간단하게 어떤 방식으로 짜면 된다라는 힌트라도 주시면 감사하겠습니다 ㅠㅠ
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
클론코딩 시
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 어떤 웹페이지를 클론 코딩할때 검사에 들어가서 요소만 보고도 똑같이 만드는게 가능한가요? 비슷하게는 되는데 한계가 있는 거 같아서요
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
결과페이지 선택값 합산하기
안녕하세요! 좋은 강의 찾게 되어 보고 있는중에 문의 남깁니다.결과 계산하기에서 value 값이 제일 높은 첫번째 항목을 결과값으로 보여주는데많이 선택한 부분 출력 말고 정답 선택(1)시 값이 더해지게 바꾸는 방법이 있을까요?점수 테스트처럼 바꿔서 만들어보고싶은데 강의로 따라하려다보니 만점아니면 빵점만 되서요 ㅠㅠ
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
select 부분이 이해가 안가서 질문드립니다 ㅠ
안녕하세요. 판다님강의 열심히 듣고 있는 수강생입니다!결과 부분 진행중인데요~setTimeout안에 select를 넣어서qIdx번째 질문에서 클릭한 답이 select 배열데이터에 담기는데어째서 클릭한게 idx로 담기게 되는걸까요...? ㅠbutton을 클릭했을 때 addEventListener로 다음 질문으로 넘어가는건 알겠는데클릭한 답변이 왜 idx에 담기게 되는지 잘 이해가 안되어서요 ㅜㅜ그리고 button을 html에 안만들고 js에서 createElement로 만드신 이유가 따로있을까요..?
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
index에서 result 페이지로 이동 질문드립니다.
https://inflearn.com/questions/675320 안녕하세요! 해당 질문 보고 추가질문드립니다.섹션2에서 질의응답이 끝나면 현재 index 페이지에서 결과값이 나오는데, 각 유형에 맞게 바로 result 페이지로 이동하려면 코드를 어떻게 수정해야 할지 궁금해서 질문드립니다.결과 이미지를 여러 장씩 넣고 싶어서요..! 시간나실때 답변 주시면 참고하겠습니다. 좋은 강의 만들어주셔서 감사합니다!
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
진행바 강의에서요 스테이터스바가 짤립니다
indexqnastart위에처럼 스테이터스가 qna박스에 먹힙니다.
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
이미지버전에서 부트스트랩 이미지하고 텍스트도 이용하고 싶어요
부트스트랩의 그리드 카드 텍스트도 이용하고 싶어서그리드카드의 코드를 복사해서 텍스틀 추가하고나서왼쪽 이미와 오른쪽 이미지의 텍스트를 따로따로 넣고싶어서start.js 에서 function goText(qidx){ var l = document.querySelector('.card-body left'); var r = document.querySelector('.card-body right'); l.innerHTML = qnaList[qIdx].a.answerleft; r.innerHTML = qnaList[qIdx].a.answerright; for(let i in qnaList[qIdx].a.answerleft){ addAnswer(qnaList[qIdx].a[i].answerleft, qIdx, i); } for(let i in qnaList[qIdx].a.answerright){ addAnswer(qnaList[qIdx].a[i].answerright, qIdx, i); } } 이런식으로 추가하고 data.js 에는 q: '1. 질문?', a: [ { answerleft: 'a. 답', type: [1, 2, 4, 9] }, { answerright: 'b. 답', type: [0, 3, 6, 5, 10, 8] }, ] 이런식으로 만들었습니다.모르겠어서 ㅜㅜ 어떻게 풀어가야할까요 settimeout도 만들어야하나요?
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
viewport 가 제대로 작동을 안해요 뭐가 문제일까요?
- 학습 관련스마트폰이 웹처럼 나오는 것 같네요
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
결과 페이지별 개별링크버튼 추가
너무 좋은강의를 볼 수 있게 해주셔서 너무 감사합니다! 한가지 궁금한게 있어서요!결과페이지에 공유하기 버튼 옆에 결과페이지별로 다른 외부 링크로 넘어가도록 적용시키고 싶은데 어떻게 해야할지 감이 안옵니다..
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
뒤로가기
혹시 2번페이지로 갔을 경우 뒤로가기 버튼을 추가하여 1번페이지로 가고 싶은데 onclick: history.back();코드만 추가하면 되는 건가요?
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
netlify not found 오류
사진에 나와있는 것처럼 만든 html, css, js 파일이 모두 들어있는 파일을 드래그 앤 드롭으로 옮겼는데 링크를 클릭하면 404 not found가 뜹니다 public도 되었다고 나옵니다 파일 설정을 잘못한 것일까요? 코드입니다<meta property="og:url" content="https://lucent-caramel-9913e2.netlify.app" /> <meta property="og:title" content="십이간지 연애유형" /> <meta property="og:type" content="website" /> <meta property="og:image" content="img/image-9.png" /> <meta property="og:description" content="십이간지로 알아보는 연애유형" />
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
아톰 에디터 설치
atom.io로 들어가면 자꾸 이런 화면이 나오네요! 어떻게 해야 강의에서 보여주시는 화면으로 들어갈 수 있나요? ㅠㅠㅠ
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
display:block을 사용하는 이유
왜 굳이 한 페이지 안에 main, qna, result 섹션을 나누는걸까요?따로따로 페이지를 만들어서 a링크로 이동시키는 것 보다 효율적인건가요?
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
qIdx수에 따라 for 문이 돌아요 ㅜ.ㅜ
안녕하세요 지금 응용해서 만들고 있는 수강생입니다 일단 정말 좋은 강의 감사드려요!응용해서 만들고 있는 도중에 for문이 qIdx가 0일 때는 한번 1번일 때는 두 번이 돌아요 ex. qIdx가 2일 때 1과 2가 돌아서 결과 값이 이상해져요 혹시 몇 시간 째 구글링 해도 모르겠어서 이렇게 문의 남깁니다!
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
카카오톡 공유하기
안녕하세요! 강의 감사합니다.영상 속 과정과 코드를 똑같이 입력하고, 카카오톡 공유하기를 실행할려고 했으나 버튼을 눌러도 아무런 반응이 없습니다 ㅠㅡㅠ 어떤게 문제일까요?
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
질문 개수 5개에 결과 4개
이런식으로 짜서 올리려고 하면 메인 화면은 잘 나오는데 여기서 막히네요... 질문을 5개 정도만 하고 싶은데 어떻게 해야할까요?
- 미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
질문 수를 줄이는 방법
현재 데이터에 있는 질문 수 말고 줄일 방법은 없을까요? 살짝 응용해서 줄여봐도 안되더군요.. 현재로써 한 5개정도만 하려고 하거든요.