JS로 코딩 테스트 보기 : 함수 모음

holymoly.jun·2021년 5월 1일
0

JavaScript 완전 정복

목록 보기
2/5
post-thumbnail

JavaScript의 Array와 String 메소드



1. String 메소드


1.1 문자열 자르기

  • substr(start,n) : start 부터 n개 자르기 / 원본 변하지 않음 / 음수 허용
let str = 'abcde';

str.substr(1,3); //bcd
str.substr(1); //bcde
str.substr(-3,2) //cd

  • slice(start,end) : start부터 end전까지 자르기 / 원본 변하지 않음 / 음수 허용
let str = 'abcde';

str.slice(1,3); //bc
str.slice(1); // bcde
str.slice(1,-1); //bcd
str.slice(-3,str.length); //cde

  • substring(start,end) : start부터 end전까지 자르기 / 원본 변하지 않음 / 음수 허용 x (음수일 경우, 0으로 취급) / start > end인 경우 바꿔서 취급
let str = 'abcde';

str.substring(1,3); //bc
str.substring(1); //bcde
str.substring(1,-1); //str.substring(1,0) -> str.substring(0,1) //a
str.substring(-3,str.length); //str.substring(0,5) //abcde

1.2 문자열 탐색

  • charAt(i) : i 번째 문자 / 음수 허용 x
  • indexOf('a') : 문자 'a'가 위치한 인덱스 중 가장 왼쪽 / 없으면 -1
  • lastIndexOf('a') : 문자 'a'가 위치한 인덱스 중 가장 오른쪽 / 없으면 -1
let str = 'abcdebb';

str.charAt(1); // 'b'

str.indexOf('b'); // 1
str.indexOf('z'); // -1

str.lastIndexOf('b'); // 6
str.lastIndexOf('z'); // -1

  • includes('a') : 문자 'a'의 존재 여부
let str = 'abcdeab';

str.includes('a'); // true
str.includes('z'); // false
str.includes('c', 2); // true (3번째 index부터 검사)
str.includes('c', 3); // false

1.3 문자열 변환 / 합치기

  • replace('abc','000') : 'abc'를 '000'으로 변환 / 원본 변하지 않음
  • replaceAll('abc','000') : 문자열 전체 중 'abc'를 모두 '000'으로 변환 / 원본 변하지 않음
let str = 'abcdeab';

str.replace('ab','00'); // "00cdeab"
str.replace('az','00'); // "abcdeab" (없으면 반응 없음)

str.replaceAll('ab','00'); // "00cde00"
str.replaceAll('az','00'); // "abcdeab" (없으면 반응 없음)

  • str.concat(str2) : str 뒤에 str2 붙히기 / 원본 변하지 않음
let str = 'abc';
let str2 = 'def'; 

str.concat(str2); // 'abcdef'

  • split(c) : 문자 c를 구분자로하여, 배열 반환 / 원본 변하지 않음
let str = 'abcde';

str.split('c'); // ["ab","de"]
str.split(''); // ["a", "b", "c", "d", "e"]

1.4 ASCII

  • c.charCodeAt() : 문자 c 를 ASCII code로 변환
  • String.fromCharCode(n) : ASCII code가 n인 문자 반환
'a'.charCodeAt(); // 97
String.fromCharCode(97) // 'a'

let str = 'abcde';
str.charCodeAt(2); // 99 ( 2번째 index 'c'의 ASCII code



2. Array 메소드


2.1 배열 자르기

  • slice(start, end) : start부터 end 전까지 자르기 / 원본 변하지 않음 / 음수 허용
  • splice(start, [,n]) : start부터 n개 자르기 / 원본 변함
let arr = [0,1,2,3,4,5];

arr.slice(); // [0,1,2,3,4,5]
arr.slice(1,3); // [1,2]
arr.slice(2); // [2,3,4,5]

arr.splice(3); // [3,4,5]  (arr = [0,1,2])
arr.splice(3,2); // [3,4] (arr = [0,1,2,5])
arr.splice(3,2,'a','b'); // [3,4] (arr = [0,1,2,'a','b',5])

2.2 배열 탐색

  • indexOf(x) : 원소 x의 가장 왼쪽 index 반환
  • lastIndexOf(x) : 원소 x의 가장 오른쪽 index 반환
let arr = [0,1,2,3,4,5,3];

arr.indexOf(3); // 3
arr.lastIndexOf(3); // 6
  • find() : callback함수의 조건에 맞는 원소의 가장 왼쪽 index 반환
let arr = [0,1,2,3,4,5,3];

arr.find(ele => ele > 3); // 4

2.3 배열 변환 / 합치기

  • reverse() : 배열 뒤집기 / 원본 변함
let arr = [1,2,3,4,5];

arr.reverse(); // [5,4,3,2,1]

  • arr.concat(arr2) : 배열 합치기 / 원본 변하지 않음
let arr1 = [1,2,3];
let arr2 = [4,5];

arr1.concat(arr2); // [1,2,3,4,5]

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],
];

// 1. return > 0 
arr.sort((a, b) => {
    return 1;
}); 
/*
[['b', 3],
['a', 1],
['b', 2],
['c', 1]];
*/


//2. return < 0
arr.sort((a, b) => {
    return -1;
}); 
/*
[['c', 1],
['b', 2],
['a', 1],
['b', 3]];
*/


//3. 문자 오름차순 후, 숫자 내림차순
arr.sort((a, b) => {
    if (a[0] !== b[0]) return a[0] > b[0] ? 1 : -1;
    else return b[0] - a[0];
});
/*
[['a', 1],
['b', 3],
['b', 2],
['c', 1]];
*/



profile
Front-End Developer

0개의 댓글