https://programmers.co.kr/learn/courses/30/lessons/12935
function solution(arr) {
var answer = [];
let smallNum = arr[0];
let smallNumIndex = 0;
if (arr.length === 1) {
answer = [-1];
} else {
for (let i = 1; i<arr.length; i++) {
if (arr[i] - smallNum < 0) {
smallNum = arr[i];
smallNumIndex = i;
}
} arr.splice(smallNumIndex, 1);
answer = arr;
}
return answer;
}
- 처음에 answer = arr.splice를 해서 잘려간 배열이 answer로 등록이 되게하는 실수를 했다. 잘려나간후의 남은 배열이 answer가 되게하기위하여 arr.splice(smallNumIndex, 1); 을 먼저 해주고 answer = arr; 을 써줬다
이벤트 등록은 DOM 요소 단위로 이루어짐
Event 개체 속성 중 target vs currentTarget
https://developer.mozilla.org/ko/docs/Web/API/Event/target
https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget
event.target은 부모로부터 이벤트가 전해져 발생하는 자식 요소를 반환한다.
하지만 currentTarget은 이벤트가 부착된 요소의 위치, 즉 부모 요소를 반환한다.
모든 dom element에는 addEventListener라는 method가 있다. 인자는 일반적으로 2개, 3개까지도 가능은 함
첫번째 인자는 이벤트 타입 이름이라 하고, 두번째 인자로 주어지는 함수는 이벤트 핸들러 혹은 이벤트 리스너 라고 함
addEventListener('이벤트이름', function () {} );
이 요소에 이 '이벤트'가 발생했을때 이 '함수'가 실행
이벤트 핸들러에는 ()에 매개변수, 인자로 들어오는 객체가 있음. 이걸 흔히 이벤트 객체라고 함
이름은 내맘대로 지어도되나 결국엔 같은 녀석임
textContent : 해당 요소의 텍스트에 접근
chanceArea.textContent = "남은 기회 : chances 번";
이런식으로 하면 chance값이 변할때마다 카운트가 뜨는게 아니라 "남은 기회 : chance 번" 이라는 문장이 항상 프린트 된다.
정적인 값과 동적인 값을 같이 넣어주고 싶을 땐 약간 다른 문법을 써줘야함
""는 정적인 값만 쓸 수 있다
``을 사용하면 정적인 값과 동적인 값을 같이 쓸 수 있다.
chanceArea.textContent = `남은 기회 : ${chances} 번`;
혹은
chanceArea.textContent = "남은 기회 " + chances + "번";
아무 값도 쓰지않고 return;만 써주면 함수가 종료됨
숫자입력박스에 마우스를 올리면 기존 숫자가 지워지게 하기
userInput.addEventListener("focus", function () {userInput.value=""})
한번만 쓰고 말 함수이기 때문에 위와같이 익명의 함수를 바로 사용해도됨
선언하면 메모리만 차지하므로
Day1까지 함