완전 탐색 : 모든 경우의 수를 다 계산. 대부분 DFS/BFS 알고리즘.
시뮬레이션 : 문제에서 제시하는 논리나 동작 과정을 코드로 구현.
유사배열을 얕은 복사를 통해 배열로 만들어주는 메서드
1.
Array.from('Tei');
//["T", "e", "i"]
2.
Array.from([1, 2, 3], x => x + x);
//[2, 4, 6]
let answer=Array.from(Array(col), () => Array(row).fill(0))
//모든 요소가 0인 col x row의 배열이 만들어짐
const order=arr.reduce((map,obj,i)=>{
map.set(obj,i)
return map
},new Map())
배열의 변수에는 참조값이 저장되어 있기 때문에 그 내용이 같아도 다르다고 나온다. JSON.stringify()로 변환 뒤 두 값을 비교하면 된다.
Object.assign() 메서드(얕은 복사)는 출처 객체들의 모든 열거 가능한 자체 속성(두 번째 인자)을 복사해 대상 객체(첫 번째 인자)에 붙여넣는다. 그 후 대상 객체를 반환합니다.
let arr=Object.assign([], tobuy);
//[ banana: 2, apple: 0, rice: 1, pork: 2, pot: 1 ]
arr=[0,1,2,3,4]
splice(start, length,[추가할 요소])
: length만큼 삭제한 부분을 반환, 원본 변형. 원본에는 삭제한 부분에 요소 추가
new=splice(1,2) //원하는 부분 반환 [1,2] 원본은 [0,3,4]
slice(start,end)
: start, end를 복사해 새로운 배열을 만들어 반환, 원본 유지
new=slice(idx,idx+2) //new는 원하는 부분 [1,2], 원본유지
substr()
: start index부터 length 길이만큼 string을 잘라내어 반환
string.substr(start, length)
substring()
: 잘라내고 싶은 문자열의 start index와 last index를 전달
string.substring(start, end)
slice()
: substring과 유사하나 음수 인덱스가 적용됨(substring은 음수를 0 취급)
string.slice(start,end)
split(쪼갤 단위 조건)
: 조건대로 쪼갠 뒤 그 배열을 반환
십진수->이진수
dec.toString(2)
이진수->십진수
parseInt(bin,2)
parseInt
parseInt("-3")=>정수 -3 반환
. : 모든 문자열
\d : 숫자
\d : 숫자를 제외한 모든 것
\s : space
| : or
[ ] : or 처리 묶음. /abc/=>'abc'를 포함, /[abc]/=>a 또는 b 또는 c를 포함.
[^ ] : 괄호 내 문자 제외
^문자열 : 문자열로 시작
문자열$ : 문자열로 끝남
? : 없거나 최대 한 개 [ab?]=>(blank), ab
* : 없거나 있거나
+ : 최소 한 개 이상
{ n } : n개 반복
{ n, } : n개 이상
{ n,m } : n개 이상 m개 이하
const text = `http://dogumaster.com http://google_com https://google.com 010-1111-2222 02-333-7777 curryyou@aaa.com`;
const reg = /https?:\/\/[a-zA-Z\-\.\_]+/g;
// /^https?로 정규식을 만들면 text 문자열의 시작 부분만 검사하게 됨
console.log(text.match(reg));
: 중복되지 않는 값들의 집합
const set=new Set([1,2,3,1,3]);
메서드 : add, has, delete, clear, size
순회 : Set.prototype.forEach메서드를 사용
set 객체는 이터러블이기 때문에 for ..of문으로 순회할 수 있고, 스프레드 문법과, 배열 디스트럭처링의 대상이 될 수도 있다.
: 키와 값의 쌍으로 이루어진 컬렉션
const map1 = new Map([['key1', 'value1'], ['key2', 'value2']]);
메서드 : size, set, get, has, delete, clear, 이터레이터 객체 반환 메서드(keys, values, entries)
요소 순회 : Map.prototype.forEach메서드, for ..of문, 스프레드문법, 배열 디스트럭처링
https://velog.io/@dolarge/Java-Script-Set-과-Map#set
for...of
for...of로 순회할 수 있는 대상은 Array, String, Map, Set,DOM컬렉션, arguments이다.
위 이터러블은 스프레드문법을 사용할 수 있다.