오늘부터는 배열에 대해서 공부했다. 개념에 대해 학습한 후 이차원배열에 대해서 개념이 명확하지 않았는데 다시 확인하는 좋은 시간이 되었던거 같다. 이후
코플릿을 페어분과 풀어보는 시간이었다.
시간을 널널하게 줘서 여유롭게 풀지 않을까 생각했지만. 24번 문제였던
join() 함수를 이용해서 숫자 배열을 문자열로 출력하는 문제 였는데.
핀트를 잘못 잡아서 사십분을 잡고 있어서 머리터지는줄 알았다.
마지막 문제였던 피나치공? 피보나치 문제도 어려웠고!
내일 객체인데 얼마나 더 어려울까 하는 생각도 들고 !!
키워드
: array , index, 요소 , length, 이차원배열 , indexOf, push, pop, shift,unshift, join, split, slice, splice, 스프레드 연산자, for~of 문, Array.isArray()
배열 Array
: 다량의 데이터를 저장할 수 있음
배열이 없으면 하나의 데이터마다 변수를 선언해줘야하는데 그럼 메모리 공간의 차지가 너무 크게 됨
index
: 배열의 요소를 가르키는 숫자 (0부터 시작!)
요소
: 배열안에 들어있는 데이터 값
length
: 배열안에 요소가 몇개 들어가 있는지 알 수 있음(갯수) (1부터 시작) index 랑 헷갈릴 수 있다.!!
이차원 배열
: 배열안에 배열이 있는 것let arr = [[1,2],[3,4]]; 호출할려면 arr[1][0] ---> 이건 1번째 요소([3,4]) 중 0번째 요소([3]) 을 말함
indexOf()
: ()괄호 안에는 찾고자 하는 요소를 입력
만약배열
에 찾고자 하는 요소가 존재하면해당 index 번호를 알려줌
찾고자 하는 요소가 존재하지 않으면-1
이 반환 됨.
.split(separator, limit)
: 문자열을 원하는 요소() 를 통해 나눌 수 있음 나눠진 문자열들은 배열의 요소 취급을 받게 된다.
separator
: 는 분할할 기준을 넣음 (문자열 중 어떤 문자로 분할 할건지)
limit
: 는 분할 최대 갯수를 정함. 값을 정하지 않으면 전체를 다 분할
분할 최대 개수를 정하면, 그 개수를 넘어가는 문자열은 반환되지 않음
- 원본 배열을 변경하는 함수들
push / pop / shift / unshift / reverse / sort / splice
.push()
: 배열의 끝에 값을 추가 함 // 추가된 배열의 길이 리턴
.pop()
: 배열의 끝에 값을 삭제 함 // 제거된 요소 리턴
.unshift()
: 배열의 앞쪽에 값을 추가 함 // 추가된 배열의 길이 리턴
.shift()
: 배열의 앞쪽에 값을 삭제 함 // 제거된 요소 리턴
splice(인수1 ,인수2, 인수3)
:요소를 추가하거나 삭제 할 수 있음
인수1
: 몇번 인덱스 부터 요소를 추가나 삭제 할건지 정함
인수2
: 요소 삭제할거면 몇개 삭제할건지 정함
인수3
: 추가할 요소를 작성 여러개 가능
fill()
: 배열의 모든요소를 동일하게 통일 시킬 수 있음
reverse()
: 배열 요소의 순서를 전부 반대로 교체즉, 가장 앞에 있던 요소가 가장 뒤에 위치하며, 가장 뒤에 있던 요소는 가장 앞에 위치하게 됨
sort()
: 해당 배열의 배열 요소들을 알파벳 순서에 따라 정렬함.이 메소드는 배열 요소를 모두
문자열
로 보고 정렬하므로
숫자
나불리언
과 같은 타입의 요소들은 잘못 정렬될 수도 있음.
- 원본 배열을 변경하지 않는 함수들
sclie / concat / join /toString
sclice(인수1, 인수2)
: 전달받은 시작 인덱스부터(인수1) 종료 인덱스(인수2) 바로 앞까지의 모든 배열 요소를 추출하여 새로운 배열을 반환.
인수1
은 어디서부터 복사 시작할건지(해당인덱스 포함)
인수2
는 어디까지 복사할건지(해당인덱스 바로 앞까지)
.concat()
: () 괄호안에 요소를 배열안으로 합칠 수 있음 (배열의 맨 뒤에 위치하게 됨)
join()
: 배열의 모든 요소를 하나의 문자열로 반환인수로 전달받은 문자열은 배열 요소 사이를 구분 짓는 구분자로 사용됨
만약 인수를 전달받지 않으면 기본값으로
쉼표(,)를
구분자로 사용
toString()
: 해당 배열의 모든 요소를 하나의 문자열로 반환.이때 배열 요소의 사이에는 자동으로 쉼표(,)가 삽입됨
Array.isArray()
: 배열과 객체 그리고 null 등을typeof
로 무슨 타입인지 출력해보면object
가 출력된다.
이경우Array.isArray()
를 사용하면 배열을 확인할 수 있다.
배열이면true
가 반환됨
배열이 아니면false
가 반환됨
Spread Operator 스프레드 연산자
:...
로 사용 하고
배열, 문자열, 객체 등 반복 가능한 객체 (Iterable Object)를 개별 요소로 분리할 수 있다.
ES6에서 추가된 연산자이다. 배열을 병합할 수도 있고 복사도 가능하다.
for of 반복문
: 배열의 요소 개수만큼 반복하고 반복 때마다 각 요소들을 사용할 수 있는 변수가 주어짐문법 let arr = [1,2,3,4] for(변수선언 of 배열) { 반복동작부분 }
위 문법을 보면 변수에 arr 배열의 요소들이 순서대로 할당되어 반복동작부분을 수행한다.