일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- nqueens
- 제일어려워
- 코딩
- 자바스크립트
- array
- DOM
- method
- Instantiation Patterns
- react
- 클라이언트
- 개발
- ftech
- 코드스테이츠
- 초보
- 취업
- 엔퀸즈
- JavaScript
- JS
- 해커톤
- underbar
- 리액트
- vscode
- grpahQL
- this
- underscores
- 연습
- 알고리즘
- 포스기
- 일상
- 공부
- Today
- Total
목록JS (16)
analogcoding
문제. 인자로 받는 문자열의 숫자가 2의 제곱수면 true를 아닐 경우 false를 리턴. Ex) input : 2 , 4 , 8 , 16 , 32 , 64 , 128 ... => output : true input : 1 , 22 , 27 , 222 ... => output : false 해결방안. 1. input값을 숫자로 받기. 2. for문을 사용해서 input을 2의 i ( i는 input보다 작게 ) 제곱과 비교. 3. Boolean 값 리턴. iput을 숫자로 변환하고 i 번 제곱할 i 를 설정해준다. var powerOfTwo = function(str) { var num = Number(str); // 숫자로 변환 for(let i = 1 ; i < num ; i++){ // input이..
문제. 인자로 받는 문자열의 알파벳을 알파벳의 고유 index로 리턴. Ex) input : "The sunset sets at twelve o' clock." => output : "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11" 해결방안. 1. 대소문자 구분 없이 작동하게 만들기. 2. 알파벳의 고유 index를 찾기 위해 알파벳 배열 만들기. 3. 문자열을 각 요소로 만들어 배열로 담기. 4. 특수문자나 공백 걸러내기. 5. iput으로 오는 배열의 요소를 알파벳 배열에 indexOf를 사용해서 index 찾기. 6. 다시 문자열로 리턴. 먼저 함수를 생성하고 input의 값을 소문자로 통일하고 각 배열로 나눠준다. ..
문제. 인자로 받는 문자열의 값이 연속된 홀수일 경우 홀수와 홀수 사이에 '-'를 입력한 후 리턴. Ex) input : '454793' => output : '4547-9-3' 해결방안. 1. 문자열을 하나씩 분리해서 배열에 각 요소를 담음. 2. 값이 홀수인지 확인. 3. 연속된 문자열 또한 홀수일시 '-' 추가. 4. 다시 배열을 문자열로 합침. 먼저 문자열을 인자로 받는 함수를 만들어준다. var DashInsert = function(str){ } 문자열을 분리해서 배열로 만들고 for문과 if문으로 값이 홀수인지 확인. str = str.split('') for(let i = 0; i < str.length; i++){ if(Number(str[i])%2!==0 && Number(str[i+1..
과제 발표 당일 발표 전까지 약 2시간 정도 여유시간이 있었다. 미처 수정하지 못한 코드나 오류를 수정하고 우리는 마지막으로 객체에 새 메뉴를 추가하면 메뉴 버튼이 자동적으로 생성되고 그 버튼 역시 기존 버튼과 똑같이 작동하게 만드는 것을 구현하기로 했다. 기존 버튼들 모두 메뉴이름과 가격이 적혀 있었는데 그 값 역시 객체에서 받아오고 객체에 수에 따라서 반복문을 이용해 모든 객체의 요소를 불러올 수 있게 설정하고 마무리 지었다. function makeMenu() { for(let i = 0; i < coffees.length; i++){ let makeMenuBtn = document.createElement('button'); makeMenuBtn.setAttribute('id' , coffees[..
그렇게 다시 일상으로 돌아와 수업과 함께 짬날 때마다 조금씩 진행이 되어가고 우리는 다시 뭉쳐서 지금까지의 진행 결과를 합쳤다. 참고로 우리 조 이름은 .. 그랑조였다. 물론 내 맘대로 그냥 지어버린 이름이지만 각자 역할을 맡고 합체시키는 게 마치 로봇 그랑죠 처럼.. 이라고 되지도 않는 핑곗거리가 하나 있다. (이런 느낌으로 조 이름을 지은거임) 다시 본론으로 돌아와서 포스기의 작동원리를 생각하면서 코드를 작성하면서 부딪힌 문제들이 꽤나 있었다. 먼저 수량이 증가하면 기존 div 밑에 동일한 메뉴가 주문창에 담겼다. 메뉴의 중복이 가장 먼저 극복해야할 문제였고 다른 우리 조의 가장 큰 문제는 메뉴 하나 당 함수가 엄청나게 길었다. 처음에 설계할 때 메뉴를 변수로 두지 않은 채 코드를 작성해서 메뉴 하나..
학원에서 함께 공부하는 동기분들과 3인 1조로 조를 꾸려서 함께 포스기를 만들어보는 작은 과제를 진행했다. 처음엔 "뭐야 쉽겠는데? 덧셈만 있는거잖아" 라고 생각했지만.. 아주 큰 오산이었다.. 간단하게만 보았던 진행 주제를 막상 백지에서 맞닥뜨리니 호락호락하지 않았다. javascript만으로도 벅찬 상태였지만 기본적인 html , css 지식조차 없던 나에게는 DOM 역시 큰 시련이었지만 훌륭한 동기분들을 믿고 과제를 시작했다. 정확히 전부를 기억하지는 않지만 조가 정해지고 시작된 건 설계와 목업 작업이었다. 여기서 목업이란? 우리는 먼저 어느 부분에 메뉴가 들어갈지 , 가격이 들어갈지 기본적인 틀을 잡으면서 화면을 간단하게 선으로 나누면서 이런 모습의 첫 화면을 완성했다. 왼쪽에는 메뉴가 오른쪽에는..
지난번에 이어 underscore 형식의 메소드를 작성해본다. _.uniq 말 뜻 그대로 유니크한, 중복되지 않는 것만 가려내서 리턴한다. // Ex) let arr = [1,1,2,2,3,4,3] => [1,2,3,4] _.uniq = function(array) { let result = []; for(let i = 0; i < array.length; i++){ if(!result.includes(array[i])){ // 빈 배열이 array[i]를 포함하고 있는지 없는지 확인하면서 집어넣음으로 중복을 제거. result.push(array[i]) } } return result; } _.contains 주어진 인자가 node 의 자손인지, 아닌지에 대해 Boolean 값으로 리턴한다. _.con..
알고리즘을 풀거나 코드를 작성할 때 아직 if 와 for에 더 익숙한 탓인지 특정 메소드를 정말 필요로 하는 상황이 아니면 filter , map , reduce 등의 메소드를 잘 사용하지 못하는 편인 것 같다. 메소드가 어떻게 동작하는 것인지 정확히 파악한다면 내가 코드를 작성할 때 조금 더 영리하게 사용할 수 있을까하는 맘에 복습 겸 메소드를 정리하기! let arr1 = [ 1 , 2 , 3 ] ; let arr2 = [ 4 , 5 , 6 ] ; Array.concat() 인자로 주어진 배열이나 값을 기존 배열에 합쳐서 새 배열을 반환한다. arr1.concat(arr2) = [ 1 , 2 , 3 , 4 , 5 , 6 ] ; Array.fill() 시작 인덱스부터(2번 인자/생략하면 처음부터) 끝 ..