📌 알게된 것

1. String.prototype.replace()

: 첫 번째 매개변수인 문자열이나 정규표현식과 같은 것을 찾아 두 번째 문자열로 바꿔준다. 

const str = "Hello, nice to meet you. Hello !";

console.log(str.replace("Hello", "Hi"));
// expected output : "Hi, nice to meet you. Hello !"

console.log(str.replace(/Hello/i, "Hi"));
// expected output : "Hi, nice to meet you. Hello !"

 

JS에는 replaceAll() 이라는 함수는 존재하지 않지만, 정규표현식을 사용하여 유사한 결과를 출력할 수 있다.

const str = "Hello, nice to meet you. Hello !";

console.log(str.replace(/Hello/gi, "Hi"));
// expected output : "Hi, nice to meet you. Hi !"

 

이때 사용된 수정자는 다음과 같다.

g 규칙을 만족하는 것을 찾더라도 문자열 끝까지 규칙을 만족하는 것이 있는지 찾는다.
i 대소문자를 구별하지 않고 규칙에 해당하는 것을 찾는다.

 

: 내장 객체의 메서드를 사용해서 문제를 해결하였다.

 


✔ 학습한 내용

 

  • sort()

: Array.prototype.sort()

: 원 배열을 정렬한다. 복사본이 만들어지는 것이 아님에 주의하자


매개변수

  1.  compareFunction

: 정렬 순서를 정의하는 함수.

생략하면 배열의 요소를 문자열로 변환하여, 각 문자의 유니 코드 코드 포인트 값에 따라 정렬된다. 즉, 숫자를 정렬하고자 할 때는 필수로 작성해주어야 한다.

 

위 함수의 반환값에 따른 sort()의 실행 결과는 다음과 같다.

 

반환값 < 0 : a가 앞, b가 뒤에 위치

반환값 = 0 : 순서 변경 없음

반환값 > 0 : a가 뒤, b가 앞에 위치

 

let num = [1, 3, 20, 4];

console.log(num.sort());	// output: [ 1, 20, 3, 4 ]

// 오름차순
console.log(num.sort((a, b) => a - b));		// output: [ 1, 3, 4, 20 ]

// 내림차순
console.log(num.sort((a, b) => b - a));		// output: [ 20, 4, 3, 1 ]

 

  • slice()

: Array.prototype.slice()

: 어떤 배열의 시작 인덱스(s)부터 끝 인덱스(e)까지의 요소로 새로운 배열을 반환한다.


매개변수

  1. s  : 추출할 첫 번째 요소의 인덱스. 생략하면 0 부터 시작한다.
  2. e : 추출을 종료할 요소의 인덱스. 해당 인덱스의 요소는 추출에서 제외한다.

 

num = [1, 2, 3, 4, 5];

console.log(num.slice(2));	// output: [ 3, 4, 5 ]

console.log(num.slice(1,3));	// output: [ 2, 3 ]

console.log(num.slice());	// output: [ 1, 2, 3, 4, 5 ]

: reserve 배열과 lost 배열에 따라 학생들의 상태를 저장한 배열을 만들어, 주어진 조건에 따라 계산해주었다.


✔ 학습한 내용

 

  •  filter()

: Array.prototype.filter()

: 주어진 함수에 참인 모든 요소를 모아 새로운 배열로 반환한다. 그런 요소가 없다면, 빈 배열을 반환한다.

 

const arr = [4, 6, 1, 7, 2];

const result = arr.filter(element => element > 5);

console.log(result);	// output: [6, 7]

 

  •  find()

: Array.prototype.find()

: 주어진 함수에 참인 첫 번째 요소를 반환한다. 그런 요소가 없다면, undefined을 반환한다.

 

const arr = [4, 6, 1, 7, 2];

const result = arr.find(x => x > 5);

console.log(result);	// output: 6

 

  •  Math.abs()

: 주어진 숫자 매개변수의 절댓값을 반환한다.

 

function minus(a, b) {
	return Math.abs(a - b);
}

console.log(minus(2, 4));	// output: 2
console.log(minus(3, 6));	// output: 3

 

: 단계에 대한 정보를 구현하면 되는 문제다.


학습한 내용

 

  •  메소드 체이닝
new_id = new_id.toLowerCase();

new_id = new_id.replace(/[~!@#$%^&*\(\)=+\[\]\{\}:?,\<\>\\\/]/g, '');

new_id = new_id.replace(/\.{2,}/g, '.');

answer = new_id;

// 위 코드를 '메소드 마이닝'을 이용해 아래와 같이 간단히 표현할 수 있다.
const answer = new_id
              .toLowerCase()
              .replace(/[~!@#$%^&*\(\)=+\[\]\{\}:?,\<\>\\\/]/g, '')
              .replace(/\.{2,}/g, '.');

 

  •  charAt()

: String.prototype.charAt()

: 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환한다.

 

const str = "hello";

console.log(str.charAt(0));	// "h" 출력
console.log(str.charAt(4));	// "o" 출력

 

  •  정규 표현식 (정규식)

: 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴이다.

 

const arr = ".example.";

// ^\. : 문자열 앞부터 진행하고, 처음 찾은 '.'을 삭제한다.

console.log(arr.replace(/^\./g, ''));	// "example." 출력

// \.$ : 문자열 뒤부터 진행하고, 처음 찾은 '.'을 삭제한다.

console.log(arr.replace(/\.$/g, ''));	// ".example" 출력

+ Recent posts