2024. 01. 03(수) Today I Learned

G_NooN·2024년 1월 3일
0

TIL

목록 보기
10/103

What I Did Today

  1. 알고리즘 특강
  2. [문자열 요약하기] 문제 해결 (풀이 내역 링크)
  3. JavaScript 문법 강의 2회차 수강(진행중)

JavaScript 문법 주요 내용

문자열(String)의 주요 메서드(Easy ver.)

메서드설명
String.length문자열의 길이
String.charAt(n)문자열의 index[n]의 문자
String.charCodeAt(n)문자열의 index[n]의 UTF-16 코드
('A'.charCodeAt(0) = 65)
String.fromCharCode(x)UTF-16 코드 x의 문자
(String.fromCharCode(65) = 'A')
String.toLowerCase()문자열을 소문자로 변환
String.toUpperCase()문자열을 대문자로 변환
String.indexOf(s)문자열에서 s와 일치하는 가장 첫 index
s가 없으면 return -1
String.lastIndexOf(s)문자열에서 s와 일치하는 가장 마지막 index
s가 없으면 return -1
String.startsWith(s)문자열이 s로 시작하는지 True/False
String.endsWith(s)문자열이 s로 끝나는지 True/False
String.includesWith(s)문자열이 s를 포함하는지 True/False
String.concat(s1, s2)문자열 s1과 문자열 s2를 연결
String.replace(s1, s2)문자열 s1을 문자열 s2로 변경
String.repeat(n)문자열을 n번 반복
String.substring(m, n)문자열의 index[m] ~ index[n-1]
m이 음수면 m = index[0]
n이 음수면 n = index[0]
n이 없으면 문자열의 끝까지
m이 n보다 크면 return index[n] - index[m-1]
String.slice(m, n)문자열의 index[m] ~ index[n-1]
m이 음수면 m = index[String.length-|m|]
n이 음수면 n = index[String.length-|n|]
n이 없으면 문자열의 끝까지
m이 n보다 크면 return 빈 문자열 ("")
String.split(s)문자열 s를 기준으로 분할하여 배열 형태로 return
String.localeCompare(s)문자열과 s를 사전 순서로 비교
if(순서 is 문자열 → s) return 음수
if(문자열 === s) return 0
if(순서 is s → 문자열) return 양수
String.trim()문자열의 앞뒤 공백을 제거

객체(Object)의 주요 메서드(Easy ver.)

메서드설명
Object.keys(obj)객체 obj의 key를 배열 형태로 return
Object.values(obj)객체 obj의 value를 배열 형태로 return
Object.entries(obj)객체 obj의 [key, value]를 배열 형태로 return
Object.preventExtension(obj)객체 obj의 속성 추가를 금지함(확장 방지)
Object.seal(obj)객체 obj의 속성 추가/수정/삭제를 금지함(밀봉)
Object.freeze(obj)객체 obj의 속성 추가/수정/삭제, 값 수정을 금지함(동결)
Object.isExtensible(obj)객체 obj가 확장 방지 상태인지 True/False
Object.isSealed(obj)객체 obj가 밀봉 상태인지 True/False
Object.isFrozen(obj)객체 obj가 동결 상태인지 True/False
Object.assign(obj1, obj2)객체 obj2의 속성들을 객체 obj1에 복사
수정사항이 있는 경우, 인수로 추가
// assign(obj1, obj2, {age: 30})

배열(Array)의 주요 메서드(Easy ver.)

메서드설명
Array.length배열의 길이
Array.push(x)배열의 마지막에 x를 요소로 추가함
Array.pop()배열의 마지막 요소를 제거함
Array.shift()배열의 첫번째 요소를 제거하고 나머지 요소를 왼쪽으로 이동시킴
Array.unshift(x)배열의 가장 앞부분에 x를 요소로 추가함
Array.fill(x, m, n)배열의 index[m] ~ index[n-1]의 값을 x로 변경
m이 없으면 m = index[0]
m이 음수면 m = index[array.length - |m|]
n이 없으면 배열의 끝까지
n이 음수면 n = index[array.length - |n|]
Array.splice(m, n, x)배열의 index[m]부터 n개의 요소를 제거하고 x로 변경함
m이 음수면 m = index[array.length - |m|]
n이 없으면 배열의 끝까지
n이 음수면 n = 0
Array.sort(callback)배열의 요소를 callback 함수에 따라 정렬함 (추가 설명 있음)
Array.reverse()배열의 요소를 역순으로 정렬함
Array.slice(m, n)배열의 index[m] ~ index[n-1]의 값
m이 없으면 m = index[0]
m이 음수면 m = index[array.length - |m|]
n이 없으면 배열의 끝까지
n이 음수면 n = index[array.length - |n|]
Array.indexOf(x)배열에서 x가 위치한 가장 첫 index
x가 없으면 return -1
Array.lastIndexOf(x)배열에서 x가 위치한 가장 마지막 index
x가 없으면 return -1
Array.join()배열의 모든 문자를 문자열 형태로 연결 // "a,b,c"
Array.concat(arr1, arr2)배열 arr1과 배열 arr2를 배열 형태로 연결 // ['a', 'b', 'c']
Array.keys(arr)배열 arr의 index를 배열 형태로 return
Array.values(arr)배열 arr의 value를 배열 형태로 return
Array.entries(arr)배열 arr의 [index, value]를 배열 형태로 return
Array.forEach(callback)배열의 모든 요소를 순회하며 callback 함수를 실행함
Array.map(callback)배열의 모든 요소를 순회하며 callback 함수를 실행하고 원본 배열과 길이가 같은 결과값 배열을 return
반드시 결과값 배열을 담을 변수를 선언해야 함 // let result = Array.map(callback)
Array.filter(callback)배열의 모든 요소를 순회하며 callback 함수를 실행하고 함수에 부합하는 요소만 담은 결과값 배열을 return
반드시 결과값 배열을 담을 변수를 선언해야 함 // let result = Array.filter(callback)
Array.find(callback)배열의 모든 요소를 순회하며 callback 함수를 실행하고 함수에 부합하는 요소만 담은 결과값 배열의 가장 첫번째 요소
반드시 결과값을 담을 변수를 선언해야 함 // let result = Array.find(callback)
Array.some(callback)배열의 모든 요소를 순회하며 callback 함수를 실행하고 함수에 부합하는 요소가 존재하는지 True/False
Array.every(callback)배열의 모든 요소를 순회하며 callback 함수를 실행하고 모든 요소가 함수에 부합하는지 True/False
Array.reduce(callback, initial)배열의 첫 요소부터 마지막 요소까지 callback 함수를 실행하고
결과값을 합성 곱으로 처리한 최종 결과값을 return (추가 설명 있음)
Array.reduceRight(callback, initial)배열의 마지막 요소부터 첫 요소까지 callback 함수를 실행하고
결과값을 합성 곱으로 처리한 최종 결과값을 return (추가 설명 있음)

Array.sort(callback)의 원리

callback 함수가 존재하지 않으면, 배열을 유니코드 코드 포인트 문자 순서로 비교함 (순서 : "80" → "9")

callback 함수

  • 인수 : (뒤의 index, 앞의 index)
  • 결과값
    - if (결과값 < 0), 뒤의 index의 값과 앞의 index의 값을 서로 바꿈
    - if (결과값 >= 0), 뒤의 index의 값과 앞의 index의 값을 서로 바꾸지 않음
	// 예시
	function(a, b) { return a - b }  // 오름차순
	function(a, b) { return b - a }  // 내림차순

Array.reduce(callback, initial) / Array.reduceRight(callback, initial)의 원리

합성 곱(Convolution)
: 배열의 요소 하나를 처리한 뒤, 해당 결과값을 다음 요소의 callback 함수의 입력 값으로 사용하는 처리 방법

인수

  • initial : 초기값, 설정하지 않으면 initial = index[0]
  • callback 함수
    - 인수
    • prev : Initial 또는 이전 요소를 처리한 함수의 결과값
    • value : 현재 처리하는 배열 요소의 값
    • index : 현재 처리하는 배열 요소의 index
    • array : callback 함수가 적용되는 배열의 참조
	// 예시
	let arr = [1,2,3,4,5];

	// reduce(callback)
	let result1 = arr.reduce(function (prev, value) {
  		return prev + value;
	});
	console.log(result1);		// 15 (1+2+3+4+5)

	// reduce(callback, initial)
	let result2 = arr.reduce(function (prev, value) {
  		return prev + value;
	}, 10);
	console.log(result2)		// 25 (10+1+2+3+4+5)
profile
쥐눈(Jin Hoon)

0개의 댓글