사용자가 버튼을 눌러 생긴 데이터 값이 어떻게 뜨는지 console.log로 확인
const endPoint =12;
// 결과값
const result=document.querySelector("#result");
// 사용자 입력값에 대한 배열
const select = [];
setTimeout(() => {
// 사용자 입력이 몇 번째인지 인덱스로 넣어주고
// idx로 받아주기 -> 몇 번째 질문에서 몇 번째 답변 눌렀는지
select[qIdx] = idx;
for(let i=0; i< children.length; i++){
children[i].style.display = 'none';
}
goNext(++qIdx);
}, 950)
}, false);
}
select[qIdx] = idx;가 몇 번째 질문에서 몇 번째 답변 눌렀는지 알려줄 것임.
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);
}
console.log(select); 하고 직접 아무거나 눌러보면

번호가 옆에 뜸.
직접 실습
function calresult(){
var 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},
]
calresult라는 함수 정의하고 pointArray는 name,value,key 배열임을 명시하고
for(let i = 0; i<endPoint; i++){
// qnalist로 들어가서 a로 들어가고 거기서 select한 값
var target =qnaList[i].a[select[i]];
for(let j=0; j< target.type.length; j++){
for(let k=0; k<pointArray.length; k++){
if(target.type[j]=== pointArray[k].name){
pointArray[k].value += 1;
}
}
}
}
하나씩 불러오는 함수 for 사용해서 질문의 개수endPoint를 하나씩 늘려간다.
target이라는 변수는 qnalist에서 a중에서 사용자가 선택한 select값이다.
target.type이 뭔지는 모르지만 ㅋㅋㅋㅋ그것들 배열에서 차례차례 나아가겠다
그 배열에서 pontArray도 차례차례 나아갈텐데
이때 target.type이 pointArray의 이름과 같다면
pointArray의 밸류값을 1증가 시키겠다.
-> 밸류값이 큰 것(최다로 나온 동물 이름)을 아웃풋하자!
sort사용해서 정렬하기
// value기준으로 정렬 sort
var 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)
// key값을 도출, 동물의 이름
let resultword = resultArray[0].key;
return resultworld;
}

sort 정의
compareFunction이 제공되지 않으면 요소를 문자열로 변환하고 유니 코드 코드 포인트 순서로 문자열을 비교하여 정렬됩니다. 예를 들어 "바나나"는 "체리"앞에옵니다. 숫자 정렬에서는 9가 80보다 앞에 오지만 숫자는 문자열로 변환되기 때문에 "80"은 유니 코드 순서에서 "9"앞에옵니다.
compareFunction이 제공되면 배열 요소는 compare 함수의 반환 값에 따라 정렬됩니다. a와 b가 비교되는 두 요소라면,
- compareFunction(a, b)이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬합니다. 즉, a가 먼저옵니다.
- compareFunction(a, b)이 0을 반환하면 a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬합니다. 참고 : ECMAscript 표준은 이러한 동작을 보장하지 않으므로 모든 브라우저(예 : Mozilla 버전은 적어도 2003 년 이후 버전 임)가 이를 존중하지는 않습니다.
- compareFunction(a, b)이 0보다 큰 경우, b를 a보다 낮은 인덱스로 소트합니다.
- compareFunction(a, b)은 요소 a와 b의 특정 쌍이 두 개의 인수로 주어질 때 항상 동일한 값을 반환해야합니다. 일치하지 않는 결과가 반환되면 정렬 순서는 정의되지 않습니다.
예시)
function compare(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}