본문 바로가기

FrontEnd

(96)
JS 유용한 배열 메서드 정리. forEach, map, reduce, find, filter 등등 // forEach는 map과는 다르게 반환값이 없음. 따라서 return해도 undefined가 나옴. let answer=[3,2,1,4]; let attempt=[1,2,3,4]; let strike=0; let ball=0; for(let i=0;i-1){ if(idx==i){ strike+=1; continue; } ball+=1; } } attempt.forEach((value, idx)=>{ let index=answer.indexOf(value); if(index>-1){ if(idx==index){ strike+=1; } else{ ball+=1; } } }); let arr2=[1,2,3,4,5]; /* 아래 세 표현식은 모두 같은 표현식이다. 주의할 것은 중괄호와 return문이 붙어..
Node.js) BOJ 20040번 : 사이클게임 https://www.acmicpc.net/problem/20040 const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; const input = fs.readFileSync(filepath).toString().trim().split("\n"); input[0]=input[0].split(" ").map(n=>+n); const node=input[0][0]; const times=input[0][1]; class Edge{ constructor(from, to){ this.from=from; this.to=to; } } class UnionFind{ constructor(n){ this.p..
Node.js) BOJ 11286번 : 절댓값 힙 const [_, ...input] = fs.readFileSync(filepath).toString().trim().split("\n"); 위와 같은 표현식이 낯설었다. 이렇게 쓴 이유는 인자를 받을 때 처음 받는 인자는 불필요하여 버릴때 위와 같이 배열 안에 언더바를 사용할 수 있다. input은 내가 입력한 데이터를 포함한 개행문자까지 모두 포함되고 거기에 추가로 배열의 형식인 쉼표 까지 추가된다. 예를들어 이 문제의 초기 입력 데이터가 와 같을 때 input에 들어간 값을 console.log로 확인해 보면 와 같음을 확인할 수 있다(아래 코드에 모든거 남겨놓았다). 그리고 이것을 const num = input.map(v => +v); 한 결과 num을 출력해 보면 num: 1,-1,0,0,0,..
백준(BOJ) 1463: 1로 만들기 이미 푼 문제이므로 다른 설명은 따로 하지 않겠다. 다만 node.js로 풀때 입력값을 받을 때 아래와 같이 toString()뒤에 있는 split("\n")가 이 문제에서는 redundant하다. 문제가 여기에서 그치면 상관없는데 이런 부수적인 것이 있으면 라고 오류를 뱉는다. const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; let input=fs.readFileSync(filepath).toString().split("\n"); solution(+input) function solution(n){ const dp=new Array(n+1).fill(0); for(let i=2;i
제로초 baseball Toy project 학습내용 보통이렇게 form과 input태그가 함께 쓰이면 form태그에 evnet를 추가하여 줌. 그래서 아래 코드에$form.addEventListener("submit", (event) => { });와 같이 코딩한 것임. 사실 form 태그 없이 input만 써도 되긴합니다. 하지만 html의 웹표준을 준수하려고 form안에 input태그를 사용해 준것입니다. 버튼(click)과 달리 form태그는 submit이라는 이벤트가 존재합니다. 이렇게 해서 form안에 있는 button을 누르게 되면 submit이 호출되게 됩니다. 기본적으로 아래와 같은 주소(~.html)였다. 그런데 확인 버튼을 누르면 화면이 깜빡거리는 동시에 이 주소가 로 바뀌는 것을 볼수있다(뒤에 ? 가 덧붙음). 이것이 바로 form 의..
백준(BOJ) 2798: 블랙잭 https://www.acmicpc.net/problem/2798 const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; let input=fs.readFileSync(filepath).toString().split("\n"); input[0]=input[0].split(" ").map(ele=>+(ele)); const n=input[0][0]; const target=input[0][1]; const arr=input[1].split(" ").map(ele=>+(ele)); let elements=new Array(3); // console.log(elements); console.log(s..
Js 배열 //배열은 index를 나타내는 문자열을 property로 갖는다. //js배열에서 key=index다(=js에서 프라퍼티의 key는 index로 쓰일 수 있다) const arr=[7,8,9]; arr[3]="s" arr.x=4; console.dir(Object.getOwnPropertyDescriptors(arr)); console.log(arr); console.log(arr['2']);//배열은 index를 나타내는 문자열을 프라퍼티로 갖는다. console.log(arr[2]); console.log(arr['s']);//undefined; // console.log(arr[x]);//Error x is not defined; console.log(arr['x']);//Js에서는 이처럼 배열의..
리터럴 표기법에 의해 생성된 객체의 생성자 함수와 프로토타입에 대하여 자바스크립트 Deepdive p272에 관한 내용정리이다. 이책을 시작한 이후 처음으로 내게 절망을 준 단원이고 그만큼 결국엔 보람을 준 단원이다. 이 단원에서 배운 가장 큰 사실은 JS에서 function foo( ) { } 라는 함수선언문이 문맥에 따라서는 함수객체도 될수 있고 함수 리터럴이 될 수도 있다는 점이다. let obj={};//obj는 리터럴 표기법에 의해 생성된 객체로 Object생성자를 사용하지 않았지만 조사하면 그 결과는 Object생성자를 //사용하여 생성한 객체인 결과가 나온다. console.log(obj.constructor===Object);//true console.log(obj.__proto__===Object.prototype);//true console.log(obj..