티스토리 뷰

시리즈/Javascript

javascript 팁

빅또리 2021. 1. 21. 21:07

 

 

 

nodejs 콘솔 입력 템플릿

const readline = require('readline');
const rl = readline.createInterface(process.stdin, process.stdout);

let input = [];

let eval = () => {

    //   Code
     
}

rl.on('line', function(line){
    input.push(line);
}).on('close', eval);

 

 

 

2차원 배열 만들기 

let arr = Array.from(Array(5), () => Array(2).fill(0))

0으로 초기화한 n*m 사이즈 배열

let arr = (new Array(n)).fill(0)

0으로 초기화한 길이가 n인 1차원 배열

 

 

 

배열 복사 (deep copy)

//(1)
let copy = arr.slice();
//(2)
let copy = [...arr];

한줄로 간단하게 복사하는 방법.

 

 

 

 

for in / for of

let arr = [3,2,7];
let obj = {name:"James", age:23, job:'student'};

//배열
for(var key in arr){
    console.log(key, ":", arr[key]);
}
for(var value of arr){
    console.log(value);
}

//객체
for(var key in obj){
    console.log(key, ":", obj[key]);
}
for(var value of obj){                               //error!! obj is not iterable
    console.log(value);
}

for  ([key,value] of Object.entries(obj)){
	console.log(key,value);
}

for in : key (배열 인덱스나 객체 프로퍼티)로 순회

for of : iterable object의 value 값으로 순회    

일반 객체는 안된다 (not iterable)                                                           

Object.entries(obj) 함수 적용해서 2차원 배열로 변경

 

 

 

 

전개구문

let a = [1,2,3];
let b = [3,4, ...a];       //[3,4,1,2,3]


...arr  => arr 에 있는 원소 하나씩 나열된 것

 

 

 

 

파이썬 문자열 곱하기랑 같은 기능

"abc".repeat(3);              //"abcabcabc"

 

 

 

 

slice (원본 변화 X)  vs splice (원본변화 O)

start 인덱스부터 end 인덱스까지의 복사본
start인덱스부터 deleteCount 개수만큼 삭제. (item 있으면 삭제된 부분에 추가)

 

 

 

 

구분자도 포함해서 split 하기

 

구분자가 괄호 ( ) 를 포함하는 정규표현식일 경우 구분자도 포함한 split 결과물을 리턴한다.

"100-200*300-500+20".split(/([*+-])/g)

결과

'시리즈 > Javascript' 카테고리의 다른 글

정규표현식 예제  (0) 2021.02.20
Map and Set  (0) 2021.02.20
String.prototype.replace() 함수  (0) 2021.01.22
javascript 콘솔 입출력  (0) 2021.01.21
[queue] javascript 효율적인 큐  (0) 2021.01.13
댓글
공지사항
최근에 올라온 글