JavaScript의 Array와 String 메소드
1. String 메소드
1.1 문자열 자르기
- substr(start,n) : start 부터 n개 자르기 / 원본 변하지 않음 / 음수 허용
let str = 'abcde';
str.substr(1,3);
str.substr(1);
str.substr(-3,2)
- slice(start,end) : start부터 end전까지 자르기 / 원본 변하지 않음 / 음수 허용
let str = 'abcde';
str.slice(1,3);
str.slice(1);
str.slice(1,-1);
str.slice(-3,str.length);
- substring(start,end) : start부터 end전까지 자르기 / 원본 변하지 않음 / 음수 허용 x (음수일 경우, 0으로 취급) / start > end인 경우 바꿔서 취급
let str = 'abcde';
str.substring(1,3);
str.substring(1);
str.substring(1,-1);
str.substring(-3,str.length);
1.2 문자열 탐색
- charAt(i) : i 번째 문자 / 음수 허용 x
- indexOf('a') : 문자 'a'가 위치한 인덱스 중 가장 왼쪽 / 없으면 -1
- lastIndexOf('a') : 문자 'a'가 위치한 인덱스 중 가장 오른쪽 / 없으면 -1
let str = 'abcdebb';
str.charAt(1);
str.indexOf('b');
str.indexOf('z');
str.lastIndexOf('b');
str.lastIndexOf('z');
- includes('a') : 문자 'a'의 존재 여부
let str = 'abcdeab';
str.includes('a');
str.includes('z');
str.includes('c', 2);
str.includes('c', 3);
1.3 문자열 변환 / 합치기
- replace('abc','000') : 'abc'를 '000'으로 변환 / 원본 변하지 않음
- replaceAll('abc','000') : 문자열 전체 중 'abc'를 모두 '000'으로 변환 / 원본 변하지 않음
let str = 'abcdeab';
str.replace('ab','00');
str.replace('az','00');
str.replaceAll('ab','00');
str.replaceAll('az','00');
- str.concat(str2) : str 뒤에 str2 붙히기 / 원본 변하지 않음
let str = 'abc';
let str2 = 'def';
str.concat(str2);
- split(c) : 문자 c를 구분자로하여, 배열 반환 / 원본 변하지 않음
let str = 'abcde';
str.split('c');
str.split('');
1.4 ASCII
- c.charCodeAt() : 문자 c 를 ASCII code로 변환
- String.fromCharCode(n) : ASCII code가 n인 문자 반환
'a'.charCodeAt();
String.fromCharCode(97)
let str = 'abcde';
str.charCodeAt(2);
2. Array 메소드
2.1 배열 자르기
- slice(start, end) : start부터 end 전까지 자르기 / 원본 변하지 않음 / 음수 허용
- splice(start, [,n]) : start부터 n개 자르기 / 원본 변함
let arr = [0,1,2,3,4,5];
arr.slice();
arr.slice(1,3);
arr.slice(2);
arr.splice(3);
arr.splice(3,2);
arr.splice(3,2,'a','b');
2.2 배열 탐색
- indexOf(x) : 원소 x의 가장 왼쪽 index 반환
- lastIndexOf(x) : 원소 x의 가장 오른쪽 index 반환
let arr = [0,1,2,3,4,5,3];
arr.indexOf(3);
arr.lastIndexOf(3);
- find() : callback함수의 조건에 맞는 원소의 가장 왼쪽 index 반환
let arr = [0,1,2,3,4,5,3];
arr.find(ele => ele > 3);
2.3 배열 변환 / 합치기
- reverse() : 배열 뒤집기 / 원본 변함
let arr = [1,2,3,4,5];
arr.reverse();
- arr.concat(arr2) : 배열 합치기 / 원본 변하지 않음
let arr1 = [1,2,3];
let arr2 = [4,5];
arr1.concat(arr2);
2.4 배열 정렬
- sort() : 조건에 맞게 정렬 / 원본 변함
- return 1 (반환값 > 0) : b가 a보다 앞으로 위치
- return -1 (반환값 < 0) : a가 b보다 앞으로 위치
- return 0 : a와 b 순서를 바꾸지 않음
let arr = [
['b', 3],
['a', 1],
['b', 2],
['c', 1],
];
arr.sort((a, b) => {
return 1;
});
arr.sort((a, b) => {
return -1;
});
arr.sort((a, b) => {
if (a[0] !== b[0]) return a[0] > b[0] ? 1 : -1;
else return b[0] - a[0];
});