Chapter 4
배열
- 여러 자료를 묶어서 활용할 수 있는 특수한 자료
- 여러 개의 변수를 한번에 선언해 다룰 수 있는 자료형
- 대괄호[…]를 사용해 생성하고 내부의 값을 쉼표( , )로 구분해 입력합니다
- 배열 내부에 들어 있는 값을 요소라고 한다.
[요소, 요소, 요소, ..., 요소]
배열 요소에 접근하기
- 각각의 요소에 접근하려면 배열 바로 뒤에 대괄호[ … ]를 입력하고 그 안에 숫자를 넣습니다.
- 자바스크립트는 가장 앞에 있는 요소를 0번째로 표현합니다.
- 이때 요소의 순서를 인덱스라고 부름
배열[인덱스]
배열 요소 개수 확인하기
- 배열 내부에 들어 있는 요소의 개수를 확인할 때는 배열의 length 속성을 사용합니다
배열.length
배열 뒷부분에 요소 추가하기
- 배열 뒷부분에 요소를 추가할 때는 push()메소드를 사용합니다.
배열.push(요소)
배열 뒷부분에 요소 제거하기
- 배열 뒷부분에 요소를 제거할 때는 pop() 메소드를 사용합니다
배열.pop()
배열 맨 앞부분에 요소 추가하기
- 배열 맨 앞부분에 요소를 추가할 때는 unshift() 메소드를 사용합니다.
배열.unshift(요소)
배열 맨 앞부분에 요소 제거하기
- 배열 맨 앞부분 요소 제거할 때는 shift() 메소드를 사용합니다
배열.shift()
인덱스를 사용해 배열 뒷부분에 요소 추가하기
- 자바스크립트에서 배열의 길이는 고정이 아닙니다.
- length 속성을 사용하여 배열의 마지막 위치에 요소를 추가할 수 있습니다.
배열[배열.length]
배열 요소 제거하기
인덱스를 기반으로 제거하는 경우
- 배열에 특정 인덱스에 있는 요소를 제거 할때는 splice() 메소드를 사용합니다
- splice() 메소드는 요소를 제거할 때뿐만 아니라 요소를 중간에 넣을 때도 사용할 수 있습니다.
배열.splice(인덱스, 제거할 요소의 개수)
값을 기반으로 제거하는 경우
- 값을 기반으로 요소를 제거할 때는 배열 내부에서 특정 값의 위치를 찾는 indexOf() 메소드를 사용해서 값의 위치를 추출한 뒤 splice() 메소드를 사용해 제거합니다.
- indexOf() 메소드는 배열 내부에 요소가 있을 경우 이네덱스를 리턴합니다.
- 하지만 배열 내부에 요소가 없을 때는 -1을 리턴합니다.
const 인덱스 = 배열.indexOf(요소)
배열.splice(인덱스, 1)
배열의 특정 위치에 요소 추가하기
- 배열의 특정 위치(인덱스)에 요소를 추가할 때는 splice()메소드를 사용합니다.
- splice() 메소드의 2번째 매개변수에 0을 입력하면 splice() 메소드는 아무 것도 제거하지 않으며, 3번째 매개변수에 추가하고 싶은 요소를 입력합니다.
배열.splice(인덱스, 0, 요소)
자료의 비파괴와 파괴
- 비파괴적처리 : 처리 후에 원본 내용이 변경되지 않습니다.
- 파괴적 처리 : 처리 후에 원본 내용이 변경됩니다.
반복문
for in 반복문
- 배열의 인덱스 기반으로 반복할 때 사용함
- 배열과 함께 사용할 수 있는 반복문
- 배열 요소를 하나하나 꺼내서 특정 문장을 실행할 때 사용합니다.
for(const 반복 변수 in 배열 또는 객체){
문장
}
for of 반복문
- 배열의 값을 기반으로 반복할때 사용합니다.
- 요소의 값을 반복할 때 안정적으로 사용할 수 있다.
for(const 반복 변수 of 배열 또는 객체){
문장
}
for 반복문
- 일반적으로 for 반복문은 특정 횟수만큼 반복하고 싶을 때 사용하는 범용적인 반복문입니다.
- for 반복문은 빠른 속도로 많은 양을 반복 작업하기 때문에 사용 범위가 넓습니다.
for(let i = 0; i< 반복 횟수; i++){
문장
}
for 반복문과 함께 배열 사용하기
- for 반복문은 배열과 조합할 수 있습니다.
- 보통 배열의 length 속성만큼 반복을 돌리는 형태로 사용합니다.
while 반복문
- 조건을 기반으로 반복할 때 사용합니다.
- if 조건문과 형태가 매우 비슷한 반복문입니다.
- if 조건문과 다른 점은 문장을 한번만 실행하고 끝나는 것이 아니라 불표현식이 true면 계속해서 문장을 실행한다는 것입니다.
- 조건이 변하지 않는다면 무한히 반복 실행하므로 조건을 거짓으로 만들 수 있는 내용이 문장에 포함되어 있어야 합니다.
- 무한 루프 : 반복문이 무한 반복 되는 것
while (불 표현식){
문장
}
while 반복문과 함께 배열 사용하기
- while 반복문과 for 반복문은 서로 대체해서 사용할 수 있습니다.
break 키워드
- switch 조건문이나 반복문을 벗어날 때 사용하는 키워드
- while 반복문은 조건이 항상 참이므로 무한 반복합니다. 이러한 무한 루프는 break 키워드를 사용해야 벗어날 수 있습니다.
while(true){
}break
continue 키워드
- 반복문 안의 반복 작업을 멈추고 반복문의 처음으로 돌아가 다음 반복 작업을 진행합니다.
중첩 반복문을 사용하는 피라미드
- 중첩 조건문과 마찬가지로 반복문을 여러 중첩해 사용하면 중첩 반복문이라고 부릅니다.
- [1, 2, 3]처럼 배열이 한 겹으로 감싸진 배열을 1차원 배열, [[1,2,3],[4,5,6]]처럼 두겹으로 감싸진 배열을 2차원 배열이라고 부른다.
중첩 반복문 사용하기(1)
let output = ''
for(let i = 1; i<10; i++){
for(let j = 0; j<i; j++){
output += "*"
}
output += '\n'
}
console.log(output)
*
**
***
****
*****
******
*******
********
*********
중첩 반복문 사용하기(2)
let output = ''
for(let i = 1; i<15; i++){
for(let j = 15; j>i; j--){
output += ' '
}
for (let k = 0; k<2*i-1; k++){
output += "*"
}
output += '\n'
}
console.log(output)
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************