-
[코딩테스트] 배열, 문자, 숫자 메서드 총정리프론트엔드 개발자가 될거야./코딩테스트 2022. 10. 11. 11:13
코딩테스트는 개발자에게 첫번째 관문이다.
아직 초반이라 어렵지만 그만큼 성장하고 배우고 있다는 증거겠지?
많이 틀리고 고치고 고민하는 이 과정이 개발자로서의 나를 더 단단하게 하고있다고 믿고 꾸준히 해야겠다.
현재 프로그래머스 1, 2단계를 풀고있고
그러면서 문제에 나오는 메서드들을 총정리 해보았다.
메서드들의 사용법이 바로 떠올라야 코딩테스트에 도전장을 내밀 수 있다!!!!!!!!!
코딩테스트의 고수가 되는 그날까지.. 파이팅.....⭐️
📌 배열 메서드
- 요소추가 ⇒ push(인자): 뒤, unshift(인자): 앞
- 요소 뽑기 ⇒ pop(): 뒤, shift(): 앞
[ 1, 2, 3, 4 ].pop() ⇒ 4
- 잘라서 원하는 부분만 남김 ⇒ slice(순서,순서) (원본 배열 변형X , 새로운 변수 선언해주기)
"01033334444".slice(7,11) ⇒ “4444”
[1,2,3,4,5].slice(1,4) ⇒ [2,3,4] "01033334444".slice(-4) ⇒ “4444”- 자르고 그 자리에 원하는 요소 추가 ⇒ splice(순서,순서,값,값…)(원본 배열 변형O) (인자 순서 주의!)
[1,2,3,4,5].splice(2,1,10) ⇒ [1,2,10,4,5] - 2번째 자리에서 하나 제거 후 10추가
- 배열 반대로 뒤집기 ⇒ 배열.reverse()
JavaScript를 사용하면서 문자열을 반전시키고 싶을 때는 reverse()를 사용하면 되는데, 이 메소드는 배열에서 동작하므로 split("")을 사용하여 분리를 먼저 해주면 된다.
- 합치기 ⇒ concat(요소)
[1, 2].concat(3, 4, 5, ‘a’, null) ⇒ [1, 2, 3, 4, 5, ‘a’, null];
[1, 2].concat([3, 4], [5, 6, 7]) ⇒ [1, 2, 3, 4, 5, 6, 7];
- 배열 → 문자 만들기 ⇒ join(””)
['Shane', 'Alan', 'Osbourne'].join(’ ’) ⇒ Shane Alan Osbourne
['Shane', 'Alan', 'Osbourne'].join(’-’) ⇒ Shane-Alan-Osbourne
['Shane', 'Alan', 'Osbourne'].join(’’) ⇒ ShaneAlanOsbourne
- 문자 → 배열 만들기 ⇒ split(””)
"Shane Alan Osbourne".split(" ") ⇒ [ 'Shane', 'Alan', 'Osbourne' ]
"Shane-Alan-Osbourne".split("-") ⇒ [ 'Shane', 'Alan', 'Osbourne' ]
split("")와 join('')은 거의 세트라 생각하자.
- 만족하는 배열의 첫번째 요소 반환 ⇒ find(요소)
- 만족하는 배열의 첫번째 요소의 인덱스 반환 ⇒ findIndex(요소) / indexOf
- 정렬하기 ⇒ sort() / 숫자 배열뿐만 아니라 문자열 배열도 정렬해 준다.
근데 10보다 큰 수가 있다면…..
// 오름차순 ⇒ items.sort((a, b) => a - b); // [2, 10, 20, 30]
// 내림차순 ⇒ items.sort((a, b) => b - a); // [30, 20, 10, 2]
// 이름의 길이순으로 정렬하기 ⇒ names.sort((a, b) => b.length - a.length); // ['Einstein', 'Kittie', 'Sally', 'John']
문자열 배열도 알아서 오름차순 정렬해준다.
자동으로 대문자가 먼저 A~Z / 그 다음 소문자 a~z
문자열을 내림차순 하고싶으면 reverse하면 된다.
= "DajBziAlC".split('') -> ['D', 'a', 'j', 'B', 'z', 'i', 'A', 'l', 'C'].split('').sort() -> ['A', 'B', 'C', 'D', 'a', 'i', 'j', 'l', 'z'].split('').sort().reverse()
-> ['z', 'l', 'j', 'i', 'a', 'D', 'C', 'B', 'A'].split('').sort().reverse().join('') -> zljiaDCBA
[ '1', '1', '8', '3', '7', '2' ].sort() → [ '1', '1', '2', '3', '7', '8' ]
- 최소값 구하기(문자열도 가능) ⇒ Math.min(…arr)
const arr = [ '1', '2', '3', '4' ];
Math.min(…arr) = '1'
- 최대값 구하기(문자열도 가능) ⇒ Math.max(…arr)
const arr = [ '1', '2', '3', '4' ];
Math.max(…arr) = '4'
- 배열의 총합 구하기 ⇒ reduce((total, el, i) ⇒ total + el ,0)
let sum = [1, 2, 3, 4, 5] var a = sum.reduce((tot, el, i) => tot + el, 0) // a = 15 // sum = [1, 2, 3, 4, 5] // 1번째 tot = 0, el = 1, i = 0, return 1 // 2번째 tot = 1, el = 2, i = 1, return 3 // 3번째 tot = 3, el = 3, i = 2, return 6 // 4번째 tot = 6, el = 4, i = 3, return 5 // 5번째 tot = 10, el = 5, i = 4, return 15
📌 숫자 메서드
제곱근이 정수면 약수의 개수는 홀수이다!!!!!!
isNaN() = ‘숫자가 아니니?’ → 숫자면 false / 숫자가 아니면 true- Math.sqrt(x) : x의 제곱근을 반환한다.
예를들어 Matn.sqrt(144) = 12
- Math.pow(base,exponent) : base에 exponent를 제곱한 값을 반환한다.
예를들어 Math.pow(12,2) = 144(12*12)
- Number.isInteger(x) : x 정수면 true, 아니면 false
예를들어 Number.isInteger(Math.sqrt(16)) = true 예를들어 Number.isInteger(Math.sqrt(15)) = false
📌 문자 메서드
- JavaScript를 사용하면서 문자열을 반전시키고 싶을 때는 reverse()를 사용하면 되는데,
이 메소드는 배열에서 동작하므로 split("")을 사용하여 분리를 먼저 해주면 된다.
- parseInt(문자)하면 NaN출력!!!- charAt(인수) - 인수번째의 문자를 읽어 냅니다.
예) "javascript".charAt(2)에는 'v'가 읽어 집니다. 0부터 시작하기 때문에 3번째인 'v'가 읽어 집니다.
- indexOf(인수) - 인수가 들어있는 위치를 알려 줍니다.
예) "javascript".indexOf("s")에는 4가 읽어 집니다. 0부터 시작하기 때문입니다.(lastIndexOf는 뒤에서부터 셈)
- substring(인수, 인수) - charAt은 문자하나를 읽어내지만 substring은 문자열을 읽어 냅니다.
예) "javascript".substring(1, 3) = "ava"를 추출 / 0부터 시작하기 때문입니다.
예) "javascript".substring(1) = "avascript"를 추출 / 0부터 시작하기 때문입니다.
- 대문자로 변경 => toUpperCase()
- 소문자로 변경 => toLowerCase()
- startsWith
- endsWith
- includes
const email = 'yealee.kim87@gmail.com'; console.log(email.startsWith('ye')); //true console.log(email.endsWith('com')); //true console.log(email.includes('@gmail')); //true
그리고 특정 문자열을 반복하고 싶으면 repeat 함수를 쓰면 된다.
'#'.repeat(3); //'###'
'프론트엔드 개발자가 될거야. > 코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 삼총사 자바스크립트 (0) 2022.10.21 [코딩테스트] 프로그래머스 음양더하기 자바스크립트 (0) 2022.10.14 [코딩테스트] 프로그래머스 2016년 자바스크립트 (0) 2022.10.13 [코딩테스트] 프로그래머스 약수의 개수와 덧셈 자바스크립트 (0) 2022.10.11 [TIL] Today I Learned : 코드카타 Day1 & 프로그래머스 직사각형 별찍기 (0) 2022.07.04