한 반에 학생이 30명 있다. 이 학생들을 관리하기 위해 번호를 사용하죠
일일이 이름을 기억하지않아도 번호만 있으면 번호를 불러서 발표를 시키거나 청소를 시킬 수 있죠.
한 명 한 명 모두 변수로 만들면 어떨까요?
완전 복잡하겠죠.. 일일이 변수명을 기억해야하고 순서도 일정하지 않으니까요.. 아마 몇 명인지 파악하는 것도 쉽지 않을 거예요. 이럴 때 우리는 배열(Array)을 사용할 수 있다.
배열은 순서가 있는 리스트다.
1번에 유빈,
2번에 이든,
.
.
.
30번에 현아
이것을 코드로 표현하면 이렇게 할 수 있다.
let students = ['유빈', '이든', ... '현아']
students 배열을 만들고 순서대로 학생들의 이름을 넣어주었다.
배열은 []
로 묶어주고 ,
로 구분해서 만들 수 있다.
// 0, 1, ... 29
let students = ['유빈', '이든', ... '현아']
배열을 탐색할 때에는 고유번호를 사용한다.
이를 index라고 한다. index는 0부터 시작한다. 이 예제에서는 0부터 29까지 index가 있다.
<script>
//index
// 0, 1, ... 29
let students = ['유빈', '이든', ... '현아']
console.log(students[0]); //유빈
console.log(students[1]); //이든
console.log(students[29]); //현아
//수정
students[0] = '성우';
console.log(students)//['성우', '이든',...]
</script>
배열은 문자형 뿐만 아니라 숫자, 객체, 함수 등도 포함할 수 있다.
<script>
let arr = [
'이든', //문자
2, //숫자
true, //boolean
{ //객체
name : 'Eden',
age : 20,
}
function() { //함수
console.log('MBTI')
}
]
</script>
배열의 길이를 구할 수 있다.
그 배열이 가지고 있는 요소의 개수를 반환한다.
<script>
students.length//30
</script>
배열 제일 뒤에 추가를 해주는 method다.
<script>
let days = ['월','화','수'];
days.push('목')
console.log(days)//['월','화','수','목']
</script>
한 번에 여러 요소를 추가할 수도 있다.
배열 끝에 요소를 제거하는 method다.
<script>
let days = ['월','화','수'];
days.pop()
console.log(days)//['월','화']
</script>
배열 제일 앞에서 동작한다.
<script>
let days = ['월','화','수'];
//추가
days.unshift('일');
console.log(days)//['일','월','화','수'];
//삭제
days.shift();
console.log(days)//['월','화','수'];
</script>
unshift()는 한 번에 여러 요소들을 추가할 수 있다.
배열을 사용하는 가장 큰 이유 중 하나는 반복을 위해서다.
length를 통해 배열의 길이를 알고 있으므로 for문을 사용할 수 있겠지요?
<script>
let days = ['월','화','수'];
for (let index = 0; index < days.length; index++) {
console.log(days[index])
}
</script>
index는 0부터 시작하게 하고, 배열 첫 요소인 index가 0이니까.
index가 배열의 length 즉, 3보다 작으면 코드를 실행하고
index를 1증가 시키게 합니다.
[index]는 0에서 2까지 반복하게 된다.
<script>
let days = ['월','화','수'];
for (let day of days){
console.log(day)
}
</script>
배열 days를 돌면서 요소 'day'라는 이름으로 접근할 수 있다. for문 보다는 간단하지만 index를 못 얻는다는 단점이 있다.
<script>
let days = ['mon','tue','wed'];
console.log(days[1]);//tue
</script>
<script>
//index를 이용해 수정
let days = ['mon','tue','wed'];
days[1] = '화요일'
console.log(days);//['mon','화요일','wed']
</script>
<script>
//배열의 길이 구하기
let days = ['mon','tue','wed'];
console.log(days.length);//3
</script>
<script>
//배열의 제일 뒤에 'thu' 추가하기, //배열의 제일 앞에 'sun' 추가하기
let days = ['mon','tue','wed'];
days.push('thu');
days.unshift('sun');
console.log(days);//['sun','mon','tue','wed','thu']
</script>
<script>
//for문 이용해서 반복하기
let days = ['mon','tue','wed'];
days.push('thu');
days.unshift('sun');
for(let index = 0; index < days.length; index++){
console.log(days[index]);
}
//"sun"
"mon"
"tue"
"wed"
"thu"
</script>
<script>
//for of문 이용해서 반복하기
let days = ['mon','tue','wed'];
days.push('thu');
days.unshift('sun');
for(let day of days){
console.log(days[index]);
}
//"sun"
"mon"
"tue"
"wed"
"thu"
</script>
이번 파트에서는 배열이 어떤건지 알아봤다. 몇 가지 method를 알아봤지만 지금 내용은 기초에 불과하기 때문에 더 열심히 해야한다. 나야