제목 재작성: 값 선택 및 변수 할당 문제 해결
P粉596161915
P粉596161915 2024-03-30 10:19:52
0
2
382

행맨 게임에는 몇 가지 테마(예: 도시 및 동물)가 있습니다.

사용자가 테마 중 하나를 선택하면 결과는 선택한 테마의 무작위 항목 중 하나여야 합니다. 예: 런던 또는 얼룩말 횡단 등

현재는 선택한 테마에 대한 임의의 문자만 있습니다.

으아악 으아악

P粉596161915
P粉596161915

모든 응답(2)
P粉691461301

기존 코드에서 topicsEl.value 将是字符串“cities”或字符串“animals”(因为这些是 <select>상자에 있는 각 옵션의 값. ). 이는 JavaScript에서 정의하는 전역 변수가 아니라 HTML에 포함된 문자열일 뿐입니다.

그 다음 randomTopic() 中,将该字符串作为数组访问,Javascript 将其解释为您希望将其视为该字符串中的字符数组。这就是为什么您会从单词中获得一个随机字母:"animals"[0] 是字母 a,"animals"[1]에는 문자 n이 들어가는 식입니다.

당신이 시도하려는 것은 "city"와 "animal"이라는 배열 변수에서 임의의 항목을 선택하는 것입니다. 그러나 함수는 이러한 변수를 건드리지 않고 DOM에 포함된 문자열에만 작동합니다. .

따라서 <select>의 문자열 값을 액세스하려는 배열로 가져오는 단계를 추가해야 합니다.

두 배열을 모두 전역 변수로 정의했습니다. 이론적으로는 다음과 같이 사용할 수 있습니다. window.citieswindow.animals 进行访问,因此您可以执行 window[topicsEl.value] 이렇게 하면 액세스하려는 배열이 반환됩니다. 하지만 창 전역 변수에 의존하는 것은 그리 좋은 습관이 아니므로 권장합니다. 이 개별 변수 쌍은 더 쉽게 접근할 수 있도록 객체로 전환되었습니다.

으아악 으아악
P粉696605833

선택에 따라 목록에 대한 임의의 값을 얻는 데 문제가 있는 것 같습니다.

현재 관련 주제 목록의 임의 요소가 아닌 임의의 topicsEl.value문자선택하고 있습니다.

topicsEl.value를 기준으로 어떤 목록을 선택할지 결정해야 합니다. 값을 키로 사용할 수 있는 경우(예: 사전) 동적으로 수행할 수 있지만 정적으로 수행할 수도 있습니다.

그러나 정적 실행으로 인해 중복 코드가 발생합니다. 예를 들어 새로운 주제 목록이 나올 때마다 if-else-if 사다리가 계속해서 늘어납니다.

으아아아

이렇게 하면 목록 선택이 동적으로 추상화되어 기능이 단순해집니다. 이전에 제안한 대로 이 목적으로 사전을 사용할 수 있습니다.

예를 들어 사전의 각 속성은 주제 목록일 수 있으며 옵션 값은 해당 속성의 이름과 일치해야 합니다.

으아아아

이 목록에서 임의의 항목을 선택하는 것은 현재 임의의 문자를 선택하는 방법과 유사합니다.

으아아아

개인적으로는 인덱스 생성이 별도의 함수에 있을 때 이 무작위 선택이 더 읽기 쉽다고 생각합니다. 예:

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!