본문 바로가기

학습 내용 정리/javascript

javascript 3. 배열과 반복문

728x90

 

1. 배열

객체형에 속한다. 키가 숫자.

두 가지 문법이 있다.  

let arr = []

 

let arr = new Array() // 실수가 생길 수 있으니 잘 이해하고 사용

꺼낼 때는 arr[순서]

0부터 시작한다. 

 

let fruits = ["사과", "오렌지", "자두"]
alert( fruits[0] ) //사과
alert( fruits.length ) // 3
alert( fruits ) //사과, 오렌지, 자두

- length : 배열에 담긴 요소의 수

// length 값 감소를 이용해 배열 자르기
// 증가시켜도 배열에는 아무런 변화가 없다

let arr = [1,2,3,4,5]
arr.length = 2
alert( arr ) // 1,2

arr.length = 5 //본래의 길이로 되돌리기
alert( arr[3] ) //삭제된 기존의 요소는 복구되지 않는다

arr.length = 0 //배열 비우기

 

- 배열 요소의 자료형에는 제약이 없다. 

- 배열의 요소는 , 로 구분한다.

 

 

큐(Queue)

push 맨 끝에 요소를 추가 

shift 제일 앞 요소를 꺼내어 제거 > 남아 있는 요소들을 앞으로 밀기 (주소가 한 칸씩 앞으로 당겨 바뀜)

 

스택(stack)

push 요소를 스택 끝에 집어 넣는다

pop 스택 끝 요소를 추출

 

unshift 요소를 배열 처음에 더해 준다

 

push pop 빠름

shift unshift 느림

 

데큐 (deque, Double Ended Queue)

: 처음이나 끝에 요소를 더하거나 뺴주는 연산을 제공하는 자료구조


- 다차원 배열 (multidimensional array)

배열이 배열의 요소가 되는 것

let matrix = [
	[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
alert(matrix[1][1]) // 5

 

2.  배열과 메서드

 

splice

배열에서 요소를 하나만 지우기

arr.splice(index, deletecount, 추가요소1, 추가요소2 ...)

deletecount를 0으로 설정하면

요소를 제거하지 않으면서 새로운 요소 추가 가능

- 음수 인덱스 사용 가능 

인덱스 -1 : 배열 끝에서 부터 첫 번째 요소

 

slice

인덱스 start 부터 end 까지의 요소를 복사한 새로운 배열

start end 음수 가능 (음수일 경우: 배열 끝에서 부터)

end를 제외하고 그 전 요소까지 출력

arr.slice(start,end)

 

conacat

모든 요소 합치기

arr.concat(합치고 싶은 거 전부 다)

 

forEach

반복 작업

 

배열 탐색하기

arr.indexOf(item, from) : 인덱스 from 부터 item 이 있는지 검색,

해당 요소 발견하면 해당 요소의 인덱스를 반환, 발견하지 못하면 -1 을 반환

 

arr.lastIndexOf(item, from) : 위와 동일하나 검색을 끝에서부터 한다. 

 

arr.includes(item, from) : 인덱스 from 부터 item 이 있는지 검색, 해당 요소 발견하면 true 반환

 

arr.find( )

true 가 반환되면 반복이 멈추고 해당 요소를 반환,

조건에 해당하는 요소가 없으면 undefined를 반환

 

arr.filter( )
조건에 맞는 요소 전체를 담은 배열을 반환한다.

 

배열 변형하기

 

arr.map

함수를 호출, 함수 호출 결과를  새로운 배열로 반환.


arr.sort

배열의 요소를 정렬, 배열 자체가 변경. 

요소는 문자열로 취급되어 재정렬된다 (사전편집순)

 

=>

화살표 함수

arr.sort(function(a,b) {return a - b})
arr.sort((a, b) => a- b)

 

str.localeCompare

모든 국가의 언어 문자열을 비교

 

arr.reverse

arr의 요소를 역순으로 정렬

 

str.split(구분문자)

구분문자를 기분으로 문자열을 쪼갠다.

 

arr.join(접착문자)

배열 요소 모두를 접착문자로 구분해 하나의 긴 문자열을 만든다.

 

Arrary.isArray(value)

value 가 배열이라면 true 아니라면 false 를 괄호 사이에 반환한다

 

3. 반복문

while

while (condition) {
	// 코드
    // '반복문 본문(body)'
}

condition 이 truthy 면 반복문 본문의 코드가 실행됩니다. 

 

do...while 문 : 반복이 끝난 후에 조건을 확인

 

for

for (begin; condition; step) {
	// 	반복문 본문
}

//begin 과 step 은 필요 없는 경우 생략 가능
for (let i = 0; i < 3; i++) {
	alert(i)
}
// 0,1, 2 출력
// 모든 구성 요소를 생략한 무한 반복문
for (;;) {
	// 끊임없이 본문이 실행됩니다.	
}

 

break

반목문 빠져 나오기 (종료)

 

continue

현재 반복을 종료시키고 다음 반복으로 넘어갈 때

 

lable (레이블)

반복문 앞에 콜론과 함께 쓰이는 식별자

labelName: for (...) {
   ...
}

break <lableName> 문을 사용하면 레이블에 해당하는 반복문을 빠져나올 수 있다. 

 

 

 

소감

 

알듯 말듯 하면서도 자세히 다루려면 어려운 것 같다.

시간 여유가 되는 날은 적겠지만 그래도 시간이 된다면 책을 읽듯 한 자도 놓치지 않고 읽어만 보는 것도 좋을 것 같다.

전부 이해할 수 있는 날이 오길 바란다. 

 

 

 

 

 

 

 

 

스파르타 코딩클럽 내일배움캠프 사전캠프 자료

javascript handbook 에서 발췌

 

 

'학습 내용 정리 > javascript' 카테고리의 다른 글

javascript 5. 객체  (1) 2023.05.03
javascript 4. 함수  (3) 2023.05.03
javascript 2. 조건문 if switch  (1) 2023.05.02
javascript 1. 자료와 변수  (1) 2023.05.02
javascript 0. 환경 설정 및 코드 구조  (1) 2023.05.02