분류 전체보기 210

23. 06.19 이터러블과 이터레이터

이것도 자주 보는 단어인데 자세히 알지는 못하던 용어였다 그래서 이번에 찾아봤다. 이터러블(iterable) : 사전적 의미로는 반복될 수 있는 이라고 하고 Symbol.iterator 라는 프로퍼티를 가지고 이터레이터(iterator) 객체를 반환하는 객체라고 한다. 이터레이터(iterator) : 사전적 의미로는 반복자, next() 메서드를 가지고 순회할 수 있어야하며 이 때 메서드의 반환값은 이런 식으로 나와야한다. { value: value, done: boolean } 어렵다 어려워 그래서 만든 예제를 따라서 만들고 나름 해석을 해보고 건드려봤다 let range = { // 일반 객체 from: 1, to: 5 }; range[Symbol.iterator] = function () { // ..

23. 06. 18 ES는 뭘까

ES는 뭘까하고 찾아봤다 ECMA인터네셔널이라는 곳이 있는데 정보통신에 대한 표준을 제정하는 비영리 표준화 기구이고 거기서 낸 규격 중 하나에 ECMA-262 라는 게 있다. 이 ECMA-262 기술 규격에 의해 정의된 스크립트 언어의 기준이 ECMAScript인데 이게 ES이다 참고로 스크립트 언어란 독립된 시스템에서 작동하도록 특별히 설계된 프로그래밍 언어이다. ES에 맞춰서 만들어졌으면서 가장 많이 사용하는 언어가 내가 배우는 JavaScript이며, 이는 원래 웹환경에서만 사용이 가능했지만 이 웹을 벗어나도 사용할 수 있게 해주는게 Node.js이다 당연히 이렇게 하면 머리에 안들어오니까 간단히 ECMA인터네셔널 > ECMA-262 > ES > JavaScript > Node.js 정도로 이해하고..

23.06.17 인스턴스가 뭘까

공부를 하려고 처음 책을 샀을 때부터 인스턴스란 뭘까하면서 정의 내리지 못했다 항상 찾아보면 나오는 붕어빵 혹은 자동차 등등에 빗대어 외우는 것만이 전부였는데 고민을 하던 나는 이것을 게임에의 경험을 생각하며 이해했다 게임을 좋아하고 오래 했던 나에게 인스턴스는 너무나 익숙한 단어이다 인스턴스 던전 흔히 인던이라 부르는 게임에서 자주 등장하는 용어가 있으니까 그 때 인던을 난 뭐라고 생각했을까 하나씩 공간이 주어진 던전, 다 같이 들어가지 못하고 같은 파티끼리만 들어가서 클리어하고 나오는 곳, 각각의 공간 그래서 인스턴스 던전에서 던전을 뺀 인스턴스도 각각의 무엇인가로 생각하려고 한다 인던은 갑자기 허공에 있지 않다 특정 지역을 가서 그 지역에 있는 인던을 들어가는 경우가 많다 또한 들어가기 전에 지형이..

객체 구조를 활용한 배열 빼기

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 마라톤 선수들 이름 에서 완주한 사람들 이름 빼면 되겠네 => 중복 이름이 있다 같은 이름 한 번씩 바꿔줘? 하나씩 날리자 function solution(participant, completion) { for (i = 0; i < completion.length; i++) { for (j = 0; j < participant.length; j++) { if (partici..

23.06.15 콜백함수

콜백함수는 매개변수로 전달된 함수라고만 알고 있었는데 오늘 강의를 들으면서 내가 이해하기 쉽게 해석해보면 내 일을 다른 애한테 넘기는것이다, 그래서 제어권이 그 다른 함수에게 넘어간 것이며 내가 넘긴 일이 콜백함수가 되는 것이다. 이 때 제어권이란 호출 시점과 인자의 순서도 넘어간다고 하는데 이것도 역시 나는 다른 사람에게 일을 맞겼으니까 그 사람이 언제 처리할지 그리고 뭘 어떻게 사용할지도 정하는 것이라고 받아들였다 그리고 this에 대한 것도 일반적으로는 전역이지만 자체적으로 this 바인딩을 설정해 놓은 경우도 있으며 this를 내가 바인딩 할 수도 있다고 했으니 내가 일을 넘겨서 신경을 안쓰면 걔가 마음대로 하는거고 내가 그거만 좀 이렇게 신경써 달라고 하면 bind()로 this를 바인딩하는 것..

Set 자료구조로 문자열 전달

문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요. 문자열을 split으로 배열로 만들고 Set으로 중복제거하고 다시 배열로 바꾸고 문자열로 하면 되겠네 문제는 없었지만 split()을 하지 않아도 바로 Set로 공백까지 문자열로 취급되어 전달 되었다

for문에서 특정 숫자로 반복이 필요할 때

소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 중복된 값이 없어야 하니까 Set에 담자 2부터 나눠보고 2로 안나눠질 때까지 한다음에 3으로 나눠보는 식으로 반복 나중에 배열 안에 Set 풀면 되겠네 function solution(n) { const result =new Set() for(let i=2;i 1) { // 위에 n===1일 때 break와 같음 for (let i=2; i

indexOf()

i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요 i! ≤ n 숫자 범위보다 큰 팩토리얼까지 모두 배열에 담는다 주어진 숫자를 배열에 담고 정렬했을 때 주어진 숫자가 어디에 위치하는지 찾으면 안될까? 문제의 숫자 범위는 10!까지 그런데 생각해보니 같은 값이면 어떻게 될까? 일단 해보자 const factorial = function (num) { let result = 1 for (i = 2; i 조건문을 줘서 다르게 하자 통과는 했는데 다른 사람들 풀이 보니까 내가 저렇게 팩토리얼부터 배열에 할당하는 것까..

스코프 활용

n까지 돌면서 약수가 3개 이상인 합성수인 경우만 배열에 담아서 그 길이를 구한다약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. n까지 돌면서 모든 합성수를 구한다 그 합성수를 배열에 담고 그 길이를 리턴한다 약수가 3 이상인 경우는 어떻게 찾을까? => 배열에 담자 그러면 배열은 몇 개가 필요할지 모르는데? => 구하고 결과값에 담고 초기화 어떻게 초기화? => 반복문 안에서 변수 선언하면 반복할 때마다 초기화 되지 않을까? => 일단 해보자 function solution(n) { let result = [] for (i = 1; i 합성수를 확인하는 배열 arr의 길이가 2 이상이..