JavaScript 72

[코딩테스트/javaScript] 2016년

우선 요일 배열을 만들어주고, 한달에 며칠씩 있는지에 대한 배열을 만들어 줬다.2016년 1월 1일은 금요일부터 시작되기 때문에, (인덱스 편의 상) 목요일부터 시작되는 배열로 만들었고,모든 일수를 더하여 7로 나눈 나머지 인덱스를 day 배열에서 뽑아오는 형태function solution(a, b) { const day = ['THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED'] const lastD = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] if (a > 1) { let th = (lastD[a-2] + b) % 7 return day[th] } else { ..

[코딩테스트/javaScript] 푸드 파이트 대회

우선 반복되지 않는 물은 미리 정답 배열에 넣어줬고,반복문을 두번 겹쳐 사용하여, 해당 인덱스를 인덱스의 수만큼 배열에 넣는 작업을 해줬다 .push와 .unshift를 번갈아 사용하며 앞뒤로 넣어줌 그리고 만약 음식의 개수가 1개 미만 (즉 j가 1 미만)일 때는 아무일도 일어나지 않게 했다.function solution(food) { let answer = [0]; //물 for (let i=1; i 0) { j--; //배열에 넣기 answer.push(j); answer.unshift(j); } } } return answer.j..

[코딩테스트/javaScript] 가장 가까운 같은 글자

function solution(s) { let answer = []; s.map((char, ind) => { if (answer.include(char) { answer.push(ind - s.indexOf(char)); } else { answer.push(-1) }) }) return answer;}틀렸다.자세히 보니, 우선 같은 글자가 있어도 indexOf는 제일 처음 나온 것만 인식함indexOf 말고 해당 요소를 모두 찾을 수 있는 메소드가 있나 봐야겠다. filterarray.filter((element, index, array) => {condition});너무 길어질 거 같아서.. ..

[javaScript/공부] this

this 알아보기         전역환경 this • Borwser(크롬)에서의 this는 window• Node에서의 this는 global         Method에서의 this • method는 항상 누군가 호출해 줘야 하기 때문에• this는 호출의 주체예를들어let obj = { methodA : function() { console.log(this); }, inner : { methodB : function() { console.log(this); } }};이런 객체가 있다고 했을 때, thisobj.methodA();obj 를 참조obj.inner.methodB()obj.inner 참조 화살표 함수의 경우, 상..

WEB/javaScript 2025.01.08

[javaScript/공부] 깊은 복사, 얕은 복사

복사 알아보기         복사? 객체는 값 자체가 아니라 값의 주소를 통해 데이터를 전달한다.그래서 객체를 단순히 복사하면, 복사한 객체와 원본 객체가 같은 메모리 주소를 참조하게 되어,하나를 변경하면 두 객체가 모두 변경되는 오류가 발생한다.이를 방지하기 위해 깊은 복사(deep copy)와 얕은 복사(shallow copy)라는 개념이 존재한다.얕은 복사는 대상의 1단계 속성만 복사하는 반면,깊은 복사는 대상을 완전히 복사하여 중첩된 객체나 배열까지도 새로운 메모리 주소를 갖도록 복사한다        얕은 복사(shallow copy) • 1단계 속성만 복사const shallowCopy = function(target) { let result = {}; for (let prop in targ..

WEB/javaScript 2025.01.07

[코딩테스트/javaScript] 숫자 문자열과 영단어 ⭐️⭐️

처음에는 그저 반복문을 돌려 문자가 매칭되면, .replace 메소드를 사용해 대체시켜주려고 생각했다.그리고 하나가 아닐 수도 있으니 if문과 while을 동시에 써 모든 글자가 대체될 때 멈추는? 그런데 다른 방법이 있을 거 같았음. 그래서 한번에 조건을 만족시키는 모든 대상에 적용시키는 함수가 없나 찾아봄그리고 정규식이라는 게 있다는 걸 알게됨! 정규식 RegExpconst regex = new RegExp(pattern, flag);이런식으로 사용하는데, pattern :  찾고자 하는 패턴 (여기서는 영어로된 단어들이 해당됨)flag : 다음 세가지로 구성됨• g(global) : 문자열 내 모든 매칭을 검색• i (ignore case) : 대소문자를 무시• m (multiline) : 여러 줄..