let ex = 'hello world';
console.log(ex.indexOf('e'));
indexOf()는 해당 문자열이 몇번 인덱스에 있는지 찾아줌.
만약 문자열에 존재하지 않을 경우 -1을 반환함.
let strike = 0;
let ball = 0;
for(let i=0; i<answer.length; i++){ //answer는 랜덤한 3자리 수
const index = myNumber.indexOf(answer[i]); //myNumber는 input을 통해 받은 수
if(index > -1){
if(index === i){
strike += 1;
}
else{
ball += 1;
}
}
}
answer의 1번째 인덱스의 문자열이 myNumber의 문자열에 존재하지 않으면 -1이 index에 할당, 존재하면 1이상의 수가 할당됨.
만약 index가 -1보다 크면(그러면 answer의 문자열 중 하나(혹은 그 이상) 와 myNumber의 문자열 중 하나(혹은 그 이상)이 일치한다는 것을 의미) 그 중 index와 i (indexnumber)가 일치할경우(문자열도 일치하지만 인덱스의 번호도 일치할 경우) strike에 +1을 해서 할당. 그렇지않을경우(문자열이 일치하긴하지만 인덱스의 번호는 일치하지 않음) ball에 +1을 하여 할당함.
myNumber 123 이고 answer가 144이면
myNumber.indexOf(answer[0]=1); 1이 myNumber에 있으면 index에 index번호가 할당될 것이며 없으면 -1이 할당됨.
결국 index===i 부분은 myNumber의 인덱스와 answer의 인덱스의 번호가 일치하는지 보는것.
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; } //랜덤한 3자리 숫자 만들기
button2 = document.querySelector('button2');
button3 = document.querySelector('button3');
const $h = document.querySelector('#h');
var answer = getRandomInt(100,999);
const inputNumber = document.getElementById('inputNumber1');
document.getElementById("button2").onclick = function confirm(){
var myNumber = document.getElementById("inputNumber1").value; //input의 값만 .value로 저장할 수 있다.
if(myNumber.length!==3){
alert("다시입력해주세요");}
let strike = 0;
let ball = 0;
for(let i=0; i<answer.length; i++){
const index = myNumber.indexOf(answer[i]);
if(index > -1){
if(index === i){
strike += 1;
}
else{
ball += 1;
}
}
}
$h.append(`strike: ${strike}, ball: ${ball}`);
}
마지막 $h부분을 추가해 화면에 보일 수 있도록 함. $(` ` )안에 작성해 넣는것은 jquery라고 함.
jquery를 공부해야할듯.
`<-이거는 'ㄷ'+한자키 하면 나옴.
document.getElementById('button3').onclick = function restart(){
location.reload(); //재시작버튼을 누르면 다시 웹페이지 실행.
}
재시작버튼을 누르면 다시 웹페이지를 실행하도록 했는데 중요한건 이걸 10번만 하게해야하며
strike와 ball부분이 누적이 되어야 하는데 내가 짠 코드는 그렇지 않음.
+) 새롭게 알게된 규칙.
하나의 랜덤한 3자리 숫자가 출력되면 그것을 10번동안 맞추는 거였음.
내일은 이부분을 해결해보자