자바 스크립트를 사용하여 클래스의 요소 배경 이미지를 설정하고 있습니다. 이 코드는 대부분 작동하지만 코드를 실행할 때 정의되지 않은 변수가 있습니다. 나는 변수의 수를 얻기 위해 Math.Random()을 사용하고있다. 내 코드에서 문제 지점 (또는 적어도 내가 생각하는) : JavaScript : 배열에서 임의의 숫자를 사용하는 동안 정의되지 않은 값을 얻는 이유는 무엇입니까?
var RandomContentDiv = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
var cd = RandomContentDiv[Math.round(Math.random()*RandomContentDiv.length-1)];
console.log(cd);
내가 숫자가 출력되는 것을 볼 수
console.log(cd);
을 넣어. 결과는 나오지만 그 결과는 문제를 해결하는 데 유용하지 않습니다. 코드를 2 번 실행 해 보면서 내가 일반적으로 얻을 수있는 것을 보여줄 것입니다.
테스트 1 :
Number: 5
Number: 13
Number: 10
Number: 1
Number: 10
Number: 6
Number: 10
Number: 3
Number: 2
Number: 15
Number: 2
Number: 3
Number: 8
Number: 15
Number: 12
Number: 7
Number: 9
Number: 2
Number: 0
Number: 8
Number: 10
Number: 3
Number: 14
Number: 13
Number: 9
Number: 1
Number: 15
Number: 13
Number: 3
Number: 2
Number: 4
Number: 14
Number: 11
Number: 0
Number: 15
Number: 7
Number: 6
Number: 1
Number: 4
Number: 7
Number: 8
Number: 6
Number: 7
Number: 4
Number: 10
Number: 0
Number: 12
Number: 11
Number: 2
Number: 7
Number: 2
Number: 11
Number: 13
Number: 6
Number: 0
Number: 5
Number: 1
Number: 2
Number: 7
Number: 8
Number: 2
Number: 13
Number: 4
Number: 3
Number: 7
Number: 15
Number: 5
Number: 1
Number: 0
Number: 2
Number: 11
Number: 8
Number: 10
Number: 12
Number: 11
Number: 1
Number: 12
Number: 11
Number: 12
Number: 0
Number: 6
Number: 8
Number: 1
Number: 11
Number: 1
Number: 12
Number: undefined
테스트 2 :
Number: 13
Number: 2
Number: 9
Number: 0
Number: 2
Number: 0
Number: 11
Number: 3
Number: 5
Number: 3
Number: 11
Number: 3
Number: 14
Number: 15
Number: 9
Number: 8
Number: 11
Number: 12
Number: 10
Number: 3
Number: 9
Number: 0
Number: undefined
나는 문제는이 성명에서 오는 생각 : RandomContentDiv[Math.round(Math.random()*RandomContentDiv.length-1)];
,하지만 난 그것을 해결하는 방법을 모른다 왜냐하면 나는 JavaScript를 Math
에 충분히 깊이 넣지 않았기 때문입니다. 내가 아는 누구는 반올림시 정확하지 않은 숫자를주는 Math.Round
에 대해 누군가가 말했지만 (즉, 1.5는 1로 반올림 할 수 있음)이 문제에 해당한다고 생각하지 않습니다. 누군가가 문제를 일으키는 진술인지 또는 다른 것을 말할 수 있습니까?
여기에 질문에 "모두"코드가 포함되어서는 안됩니다. 문제를 재현하는 가장 짧은 예제로 코드를 줄여야합니다. 즉,'Math.random (length * 1) '이 잘못되었습니다. '*'가'-'보다 우선 순위가 높으므로 조작 순서가 올바르지 않습니다. '-'앞에'-'가 오도록 괄호를 추가하여 문제를 해결하십시오. – meagar
@meagar 그것은 "여기 내 모든 자바 스크립트 코드"입니다. 귀하의 솔루션을 시도해 보겠습니다. –
** 모든 ** 자바 스크립트 코드가이 질문을 주제로 삼습니다. 문제는 단일 3 회선 반복으로 재현 될 수 있으며 그 회 돌이가 포함되어야합니다. 아무것도 더. – meagar