- 자바스크립트 Reference: 자바스크립트에 내부에 포함되어있는 Object들을 카테고리 별로 확인 가능하다. : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
배열 함수
.find() => 배열 중에서 조건에 부합하는 첫 번째 요소 반환
.filter() => 배열 중 조건에 부합하는 모든 요소들로 새로운 배열 반환
.slice(begin,end) => 어떤 배열의 begin 부터 end 까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환
.splice(begin, count) => 배열의 인덱스 부터 count만큼 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.
.split() => 문자열을 부분 문자열(substring)로 구분해 문자열 객체를 여러 개의 문자열로 이루어진 배열로 분할 =>( ) 괄호 안의 구분자를 기준으로 나누어 배열로 반환 => ( ) 비어있을 시, 하나의 배열 반환, (' ')시 각 문자열을 분할하여 배열의 요소로 반환, ('-')시 -기준으로 나누어 배열로 반환
.reverse() => 배열을 반전한다. 첫 번째 배열 요소는 마지막 요소가 되고 마지막 요소는 첫 번째 요소가 된다.
.join() => 배열의 모든 요소를 문자열로 결합=> 구분자()를 기준으로 나뉨, ( )비어있을 시 배열을 ,으로나누어 반환(h,e,l,l,o), (' ')시 하나의 문자열로 반환(hello)
.shift() => 배열의 첫번째 요소 삭제
.reduce() => 배열의 누적값, 현재값, 초기값으로 생성한 새로운 배열 반환 => for, map, filter 등을 대체 가능, 단점 보완 가능, 여러가지 쓰임 가능 => 설정한 초기값이 acc가 됨, acc에 curr값을 더하거나, 가공한 curr값을 push하거나 등...
1. acc = 초기값 설정
2. 콜백 안{ }에서 배열의 curr값들이 하나씩 들어와서 로직 실행(acc.push(curr*2)) ... 등
3. return acc => 반복을 모두 마친 결과인 acc를 return함
const num_list = [1, 2, 3, 4, 5, 6, 7];
const result = num_list.reduce(
(acc, curr) => {
curr % 2 === 0 ? acc[0]++ : acc[1]++;
return acc;
},
[0, 0]
);
console.log(result);
const students = [
{
name: "sue",
age: 13,
},
{
name: "sae",
age: 30,
},
{
name: "hoe",
age: 20,
},
{
name: "tea",
age: 16,
},
{
name: "jun",
age: 22,
},
];
const adults = students.reduce((acc, curr) => {
curr.age >= 20 && acc.push(curr.name);
return acc;
}, []);
console.log(adults);
function solution(numbers) {
const answer = numbers.reduce((acc, curr) => {
acc.push(curr * 2);
return acc;
}, []);
return answer;
}
console.log(solution([1, 4, 9, 4, 5]));
//[ 2 ] 1 => [acc],curr => 초기값 [ ]= acc, acc에 curr*2가 push됨
//[ 2, 8 ] 4
//[ 2, 8, 18 ] 9
//[ 2, 8, 18, 8 ] 4
//[ 2, 8, 18, 8, 10 ] 5
//[ 2, 8, 18, 8, 10 ]
배열 정렬
sort() => 배열을 재정렬해 주며, 배열 자체가 변경되므로 주의하여 사용한다.
1. 파라미터(compareFunction)가 생략되면, 유니코드 순서에 따라서 오름차순으로 정렬(알파벳 a > b > c순)
2. 오름차순, 내림차순일 경우 콜백으로 파라미터를 전달해야함
3. 배열 내부값으로 세부 정렬도 가능하다 => a[1] - b[1]
오름차순
arr.sort((a,b) => a - b)
내림차순
arr.sort((a,b) => b - a)
문자 정렬방법(오름차순)
array.sort((a, b) => a > b ? 1 : -1);
sort를 이용해 세부적으로 조정하여 문자열 정렬시키기
=> string1.localCompare(string2) 메소드
string1.localCompare(string2)
string1이 string2보다 전에 위치할 경우 음수(-1), 후에 위치할 경우 양수(1) 반환, 동일 시 0반환
// "a"는 "c" 전에 위치하므로 음수 값을 반환
'a'.localeCompare('c'); // -2 혹은 -1 (또는 다른 음수 값)
// 알파벳 순으로 단어 "check"는 "against"보다 뒤에 위치하므로 양수 값을 반환
'check'.localeCompare('against'); // 2 혹은 1 (또는 다른 양수 값)
// "a"와 "a"는 서로 동등하므로 중립 값 0을 반환
'a'.localeCompare('a'); // 0
문자열 속성과 메소드
String.length / Array.length => 문자열, 배열에 사용 가능하다. 문자열, 배열의 갯수를 반환
parseInt() : 문자열 => 숫자 데이터만 추출하여 숫자열로 변환, 공백 무시, 소수점 무시 => 소수점 버림 기능으로 활용은 가능하나, 그 의도의 목적이 아닌, string을 number로 변환하기 위한 함수이기 때문에 불필요한 문자 변환 등의 기능이 포함되므로, 차라리 수학적으로 소수점 버림의 기능을 하는 Math.floor( ) 를 사용하는 것이 더 바람직한 것 같다. => Math.trunc 사용
.toString() : 숫자열 => 문자열으로 타입을 환해 준다.
.split() : 문자열을 일정한 구분자(seperator)로 잘라서 배열로 반환한다. split() 구분자를 아무것도 전달하지 않을 경우 => 문자열을 하나의 배열로 반환, (" ") 띄어쓰기로 나누어 갯수대로 배열로 반환, ("") (length가 0인 문자열)을 전달하면,
문자열을 각각의 문자별로 잘라서, 한 글자씩(공백 포함) 배열에 넣어 반환
.replace(문자열, 대체문자) : replace는 문자열에서 찾을 문자열 첫번째 요소를 대체 문자열로 변환한다. => 배열에서는 사용 불가
.replaceAll(문자열, 대체문자) : replace는 해당 문자열 첫번째 요소만 변환하지만 replaceAll은 해당하는 모든 문자열을 변환한다.
.replace(regex, "") : replace에 regex 정규표현식을 사용하면 정규표현식에 포함되는 모든 코드를 삭제시켜 준다.
숫자 속성과 메소드
.Number.isInteger(a) : 정수인지 확인하여 true false를 반환한다.
날짜 구하기
const date = new Date() : Date객체 생성
date.getFullYear() : 년도
date.getMonth() +1 => 0~11 사이의 값을 출력하기 때문에 일반적으로 월을 셀 때는 +1을 더하여 사용
date.getDate() : 일
date.getHours() : 시
date.getMinutes() : 분
date.getSeconds() : 초
문자열 찾기
문자열에 접근하는 방법
1. String.CharAt(index)
2. String[ ]
const string = "hello";
console.log(string.charAt(2));
console.log(string[2]);
.indexOf("찾을 문자열") 또는 indexOf("찾을 문자열", "시작 위치") : 찾은 문자열의 시작 위치를 반환한다. 찾을 문자열이 없을 경우 -1을 반환한다. 찾을 위치를 두 번째 인자에 부여하면 시작 위치에서 부터 문자열을 찾는다. => 대소문자를 구분해야 한다. 대문자로 변경하는 toUpperCase()나, 소문자로 변경하는 toLowerCase()를 함께 사용해야 원하는 결과값을 확인할 수 있
.includes("찾을 문자열", 시작위치) : 찾을 문자열이 있을 경우 true, 없으면 false를 반환한다..search("찾을 문자열") : 포함하고 있는 문자의 인덱스를 반환한다. 해당 문자가 없을 경우에는 -1을 반환한다.
regex(정규식) : 복잡한 문자도 하나처럼 찾아낼 수 있고 하나의 문자를 여러개(배열)로 찾을 수 있다.
해당 문자를 포함하고 있으면 true 없으면 false를 반환한다.
const stringVal = "Hello world"
const exp = /hell/;
exp.test(stringVal);
lastIndexOf("찾을 문자열") 또는 lastIndexOf("찾을 문자열", "시작 위치"): 문자열을 마지막부터 찾을 경우,
search("찾을 문자열") : search 함수는 indexOf 함수와 동일하게 문자열을 찾을 수 있다. search 함수는 문자열을 찾을 때 시작 위치는 지정할 수는 없다.
문자열 삭제
.pop() => 배열의 마지막 요소 삭제
.shift() => 배열의 첫번째 요소 삭제
.splice(index, count) => 배열의 index 또는 문자열 부터 count만큼 삭제
Map() 객체
- Map() 객체 생성 : Map객체는 중복을 허용하지 않기 때문에 알아서 중복을 제거해 준다(객체의 중복 제거에서도 유용하게 사용가능). 또 set(), get(), delete(), clear()등의 유용한 메소드를 사용할 수 있다.
=> Set()객체도 있음, 둘의 차이점은 뭘까?
1) .get(' ') => 해당하는 key값을 찾아서 반환
2) .set(key, value) => 객체 내부에 설정한 key와 value 값으로 key : value를 추가, 수정해 준다.
3) .delete(' ') => 해당 하는 key값을 삭제한다.
4) .clear( ) => 객체 내부의 모든 property들을 비워준다.
+ ❗배열을 Map이나 Set객체로 생성하는 방법
const wordSet = new Set(["aya", "ye", "woo", "ma"])
//결과
Set(4) { 'aya', 'ye', 'woo', 'ma' }
Set() 객체
1) .has(' ') => 지정된 값을 가지는 요소가 존재하는지 true/false로 여부를 나타내는 방법
Math 함수
Math.trunc() : 소수점 이하는 버린다. => 소수점 버릴 때, 즉 정수만 추출할 때는 Math.floor보다는 Math.trunc가 더 좋은 것 같다.(함수의 의미상, floor은 내림 함수기 때문에 음수가 될경우, -3.3 => -4가 될 가능성이 있다.)
Math.round() : 반올림
Math.floor() : 내림 floor => 바닥까지 내린다고 생각 3.5 => 3 -3.5 -> -4
Math.ceil() : 올림 ceiling => 천장까지 올린다고 생각 3.5 => 4 -3.5 -> -3
Math.sqrt(n) : n의 제곱근을 반환한다. => 144 => 12반환
+ toFixed() : 매개변수만큼 자리수를 반올림해 String으로 반환해주는 함수. 매개변수는 소수점 몇 번째 자리까지 나타낼 지를 나타낸다. 0~20까지 입력할 수 있다. 숫자예를 들어 아래처럼 매개변수를 2로 지정해주면, 소수점 둘째자리까지 반올림해서 나타낸다. default값은 0이기 때문에 toFixed()만 입력하면 소수를 정수로 만들 수 있다 => String으로 반환한다는 점을 주의하자! 'number '타입으로 사용하고 싶다면 Number() 메서드를 한번 더 사용해서 숫자로 변환해줘야 한다.
'알고리즘' 카테고리의 다른 글
자료구조 - 스택(Stack)과 큐(Queue) (0) | 2023.08.03 |
---|---|
자료구조 - 해시 테이블(hash table)이란 무엇인가? (0) | 2023.08.02 |
자바스크립트 랜덤숫자 뽑기(중복 제거) (0) | 2023.04.04 |
프로그래머스 Lv0 알고리즘 풀이 (0) | 2023.02.21 |