2013-04-27 3 views
1

학교 프로젝트의 경우 C로 게임을 만들어야합니다. 그러나 Javascript + js를 사용하면 시각적으로 쉽게 구현할 수 있으므로 게임을 작성하기로했습니다. 전에 js에, 내 구조를 바로 잡으려고. 그래서 내 코드가 이상하게 반복됩니다.Javascript 배열이 설정되고 있습니다.

이제는 스위치가 눌려진 switches[] 어레이가 있습니다 (1/0). 이것을 다른 어레이 oldArray[]과 비교하고 싶습니다. 비교할 때, 그들은 둘 다 항상 어떤 이유로 든 동일하고, 나는 그것을 찾을 수 없습니다. jsfiddle.net에 대한 전체 샘플은 다음과 같습니다. 문제는 memory() 함수에 있습니다. 이 라인은 제대로 작동하지 않습니다 : 항상 oldArray[] 동일하게 보인다

if (switches[i] == 1 && oldArray[i] == 0 && guessedArray[i] == 8 && i != oldtouch) {...} 

switches[] 때문이다.

바이올린에서 Start을 누르고 일부 버튼을 클릭 한 후 consle 출력을 확인하십시오.

+0

'선언 switches'된다

oldArray = switches.slice(0)

은 자세한 설명이 참조 할, 그들이 동일한 개체를 가리하지 않고, 다른 한 배열의 모든 값을 복사하려면? – 0x499602D2

답변

2

할당 문 oldArray = switches이 실행될 때 두 변수가 메모리의 동일한 기본 객체를 가리 키기 때문에 두 변수가 동일합니다. Copying array by value in JavaScript

+0

오, 알았어. 어떻게 그 값을 평등하게 만듭니 까? 그래서 나는'switches'에서'oldArray'까지 모든 값을 한 번만 설정하고,'switches'가'oldArray'를 바꿀 때만 값을 설정합니까? – jdepypere

+1

답변을 편집하여 원하는 결과를 얻는 방법에 대한 정보를 추가했습니다. – Shaun

관련 문제