결과 분석

jb kim·2021년 8월 21일
0

심리사이트

목록 보기
12/16

data.js 보기

하나의 object 는 아래와 같이 answer에 따른 type이 있다.
이때 선택한 답변의 type의 동물성향 중 가장 많은 동물을 찾아야 한다!!!

  {
    q: '1. 이성 사이에 진정한 친구는 있다, 없다?',
    a: [
      { answer: 'a. 이성 사이에 친구가 어딨어? 절대 없어', type: ['cow', 'tiger', 'dragon', 'chick'] },
      { answer: 'b. 친구 있지, 절대 이성으로만 안 보일뿐', type: ['mouse', 'rabbit', 'horse', 'snake', 'dog', 'monkey'] },
      { answer: 'c. 난 잘 모르겠어..', type: ['sheep', 'pig' ] },
    ]
  }

12간지 동물들을 모두 배열에 입력, 이때 key값은 아래의 infoList의 순서값

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 },
]

버튼의 선택(select배열)값으로 답변의 type 중 가장 많은 동물 찾기 함수

function calResult() {
  const 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 (let i = 0; i < endPoint; i++) {
    let 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++;
          break;
        }
      }
    }
  }
}

pointArray 에서 가장 큰 value의 object의 이름을 리턴

calResult() 함수의 아래쪽에 작성

  let resultArray = pointArray.sort((a, b) => a.value - b.value);
  console.log(resultArray);
  return resultArray[11];

profile
픽서

0개의 댓글