Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

안녕하세요. 제가 지금 라이믹스와 자바스크립트로 어떤 프로그램을 하나 만들고 있는데요.

이부분에서 계속 막혀서 조언을 구해봅니다.

 

var indexesToCheck = [4, 24, 25, 34, 44, 54, 64, 74, 84, 94, 104, 114];

if (selectedAnswer.length >= indexesToCheck.length) {
    var isCorrect = true;

    for (var i = 0; i < indexesToCheck.length; i++) {
        var indexToCheck = indexesToCheck[i];
        var correctValue = correct_All[indexToCheck].toString();
        var selectedValue = selectedAnswer[indexToCheck].toString();

        if (selectedAnswer[indexToCheck - 1] !== correctValue) {
            isCorrect = false;
            break;
        }
    }

    if (isCorrect) {
        trust = 100;
    }
}

 

위처럼 isCorrect 만 조건을 걸면 제가 원하는대로 결과가 나옵니다.

 

if (isCorrect && selectedAnswer[3] === 1 && selectedAnswer[23] === 2 && selectedAnswer[2] === 2 && selectedAnswer[12] === 2) {
    trust = 100;
}

 

selectedAnswer는 사용자가 문제에 대한 선택한 답변(1 또는 2)을 배열로 저장한 것입니다.

코드를 위처럼 변경하면 말을 안듣습니다.

조건에 맞게끔 답변을 선택했는데 실행이 안됩니다. (trust 값이 바뀌지 않습니다.)

저거 말고도 ChatGPT 도움 받아서 이 방법 저 방법 다 해봤는데도 똑같습니다..

뭐가 잘못된건지를 모르겠습니다.

자바스크립트 고수님들 계시면 조언좀 구할 수 있을까요? ㅠㅠ

  • Lv6

    저는 초보입니다만 지나가다가 잠시......
    변수명으로만 생각했을 떄 첫번째 if부터 이해가 안됩니다.
    체크할 수 있는 목록이 12개인데 선택한 답이 12개를 넘는다는 조건이요.. 아래도 무엇을 하시려는 지 이해가 쉽지 않네요.

  • Lv15
    저도 초보입니다만 윗분 말씀대로 질문하실 때 코드의 각줄마다 주석을 달아서 의도하신 바를 같이 작성해주시면 답변자분께서 답변하기 편할 듯 합니다.
    코드의 정확한 해석을 위해 좀 더 이해가 쉽도록 작성자분께서 각 줄마다 주석를 달아주신다면 답변하기 수월할거같습니다.
  • Lv5

    indexesToCheck 배열의 크기는 12인데, 배열의 인덱스는 0부터 시작하므로 실제로 접근할 수 있는 인덱스는 11까지입니다.

    selectedAnswer 배열이 indexesToCheck 배열과 크기가 같다면, selectedAnswer[23]와 selectedAnswer[12]에는 접근할 수 없을 것입니다. 그러니 해당 조건은 항상 false가 되어서 trust 값이 바뀌지 않는 것입니다.

  • Lv5 Lv2

    20230630_114609.png

    selectedAnswer 배열은 indexesToCheck 배열보다 크기가 큽니다.

    184개의 숫자를 저장합니다.

    [23]과 [12]에 접근할 수 있을텐데 위에는 undefined 라고 나오지만 결국은 false만 나옵니다..

  • Lv2 Lv5
    소스 코드를 제대로 이해못하신 것 같은데, console.log(selectedAnswer[23])을 찍어보셔야 할 듯 합니다
  • Lv5 Lv2
    찍어보니 1이라고 잘 나오고 있습니다.
  • Lv2 Lv5
    게시글 본문에 올려주신 소스와 질문 내용만으로는 스무고개식 질문이 될 듯 하네요. 실제로 작성하신 전체 소스 코드를 봐야 할 듯 합니다
  • Lv8

    correct_All 변수 단어만 본인이 작성했고, 나머지는 ChatGPT 가 작성한 것으로 보이네요.
    코드 다 지우고, 본인이 코드를 다 작성하시면 동작할 것 같습니다.

  • Lv8 Lv2
    네 ChatGPT 도움 많이 받았습니다.
    본인이 코드를 다 작성하라는 게 무슨 뜻인가요??
  • Lv2 Lv5
    ChatGPT가 짜주는 소스 코드가 모두 정답이 아닙니다.
    종종, 제대로 동작하지 않거나 사람이 상황에 맞게끔 고쳐서 수정해야 하는 소스 코드가 나옵니다.
  • Lv18
    어떤 목적의 코드인가요? "어떤 프로그램" 말고 제대로 적어주세요. 목적을 모르는 코드기에 오동작한다 해도 어떤게 오동작인지 알 수 없습니다.
  • ? Lv6

    값을 consloe.log 로 하나씩 찍어보면서 디버깅 해야할 것 같은데요.
    위에 console.log(selectedAnswer[23]) 는 1로 잘 나온다고 하셨으니 다른 값도 하나씩 콘솔 찍어보면서 undefined 되는 값을 찾아보는게 좋을 듯 합니다.