목록javascript (7)
코딩쌀롱
웹에서 파일을 입력 받으려면 HTML에서 input type="file"으로 받을 수 있다. input 태그에 대해서는 다음 링크를 참조! (input type="file"의 HTML, CSS 링크) ✱ JavaScript 코드 전체적으로 설명하자면, 1. 사용자가 input으로 파일을 선택하면 'change' 이벤트가 발생한다. 2. 파일이 선택되면 input의 'files' 속성에 'FileList' 형태의 유사배열객체가 저장된다. 3. 'FileReader' 객체는 파일을 읽을 수 있게 도와주는 객체다. 4. FileReader의 메서드 readAsText로 텍스트를 읽어올 수 있다. 5. 읽기 성공하면 'load'이벤트가 발생한다. 6. 읽어들인 파일의 내용은 FileReader 객체의 resul..
Promise에 대해서는 이전 글에 작성하였습니다. ✱ Promise → async/await function findAndSaveUser(Users) { Users.findOne({}) .then(user => { user.name = 'eve'; return user.save(); }) .then(user => { return Users.findOne({ gender: 'f' }); }) .then(user => { // 생략 }) .catch(err => { console.error(err); }); } 위 코드를 async/await로 바꿔보면 (에러 처리부분은 이 다음 코드에) async function findAndSaveUser(Users) { let user = await Users.fin..
✱ Promise const promise = new Promise((resolve, reject) => {...}); new Promise()로 프로미스를 생성할 수 있으며, 그 내부에 resolve, reject를 매개변수로 갖는 콜백함수(executor)를 넣는다. 이렇게 만든 promise 변수에 then과 catch 메서드를 붙일 수 있다. 프로미스 내부에서 비동기 작업이 성공적으로 이행됐으면 resolve가 호출되고, then이 실행된다. 작업에서 오류가 발생한 경우 reject가 호출되고, catch가 실행된다. finally는 성공/실패 여부와 상관없이 실행된다. const condition = true; // true면 resolve, false면 reject const promise =..
문제 프로그래머스 모의고사 문제 input: 1번부터 마지막 문제까지 정답이 순서대로 들은 배열 answers output: 가장 많은 문제를 맞힌 사람이 누구인지 담음 배열 (여럿일 경우 오름차순) 나의 풀이 1, 2, 3번 학생들의 찍는 번호들을 담을 배열을 어떻게 저장할지 고민하다가 처음에는 2차원 배열로 저장했다. 코드를 모두 작성했을 때 지저분해보이고, forEach를 한 번 더 돌아야해서 각 학생들의 배열들을 따로 저장하는 것으로 수정했다. 그리고 메서드 체이닝을 많이 안 써봤는데 보기에 되게 좋은 것 같다! 자주 활용해봐야겠다.
문제 프로그래머스 크레인 인형뽑기 게임 문제 input: 1) 게임 화면의 격자 상태가 담긴 2차원 배열 board 2) 인형을 집기 위해 크레인을 작동시킬 위치가 담긴 배열 moves output: 크레인을 모두 작동시킨 후 터뜨려져 사라진 인형의 개수(number) 나의 풀이 한 달 전쯤 같은 문제를 풀었었는데 그 때는 이중 for문으로 풀었었다. 그래서 이번에는, 1. for문을 사용하지 않고 2. reduce를 사용해서 2차원 배열의 행, 열을 바꿔주는 함수도 직접 작성해보기로 했다. let board = [ [0, 0, 0, 0, 0] [0, 0, 1, 0, 3] [0, 2, 5, 0, 1] [4, 2, 4, 4, 2] [3, 5, 1, 3, 1] ]; 문제에서 input으로 주는 2차원 배열 ..
아래의 두 배열을 반복문 사용하지 않고 만들어보자. ① 인덱스가 곧 원소이고, 길이가 num인 배열 ex) num = 3 → [ 0, 1, 2 ] num = 5 → [ 0, 1, 2, 3, 4 ] ② 1부터 num까지의 원소를 갖는 배열 ex) num = 3 → [ 1, 2 , 3 ] num = 5 → [ 1, 2, 3, 4, 5 ] 1. new Array() + fill + map // 1번 const getArr1 = num => new Array(num).fill(0).map((_, i) => i); // 2번 const getArr2 = (num, start = 1) => new Array(num).fill(0).map((_, i) => start + i); 2. Array.from() // 1번..
문제 LeetCode 83. Remove Duplicates from Sorted List 문제 input: 싱글 링크드 리스트의 head node output: 중복 val인 노드들을 제거한 링크드 리스트의 head node // Definition for singly-linked list. function ListNode(val, next) { this.val = (val===undefined ? 0 : val) this.next = (next===undefined ? null : next) } 노드들은 val, next 속성을 가지고 있다. 나의 풀이 while문 마지막에 현재 노드를 다음 노드로 바꿔주고, 현재 노드가 끝까지 가서 null일 때 while문을 더 이상 돌지 않게 했다. ✱바깥 wh..