배열은 여러개의 값을 순차적으로 나열한 자료구조다. 배열이 가지고 있는 값을 요소(element)라고 부르며, 자바스크립트의 원시값과 객체, 함수, 배열 등, 즉 모든 값이 배열의 요소가 될 수 있다.
대부분의 프로그래밍 언어에서 배열 요소의 인덱스(index)는 맨 앞의 요소에서 0부터 시작한다. 배열의 요소는 배열에서 자신의 위치를 나타내는 0이상의 정수인 인덱스를 갖으며, 인덱스는 배열의 요소에 접근 할때 사용한다.
대괄호 내에는 접근하고 싶은 요소의 인덱스를 지정한다.
배열의 값(요소)는 인덱스로 조회하거나 변경할 수 있다.
배열에 없는 인덱스를 조회할 경우, undefined라는 값을 반환한다.
// fruits 배열의 2번째 인덱스의 값은?
let fruits = ['banana', 'apple', 'pineapple'];
console.log(fruits[2]) // 'pineapple'
// fruits 배열의 3번째 인덱스의 값은?
console.log(fruits[3]) // undefined // 배열의 인덱스에 없는 인덱스를 조회할 경우!
변수처럼 해당 배열의 인덱스에 값을 할당해주면, 해당 인덱스의 배열의 값이 변경된다.
// 배열의 3번째 인덱스의 값을 변경하려면?
let myNumber = [73, 98, 86, 61, 96];
myNumber[3] = 200;
console.iog(myNumber) // [73, 98, 86, 200, 96] 3번째 인덱스의 61이 200으로 변경됨.
자바스크립트의 2차원 배열은 1차원 배열 안에 또 다른 배열이 중첩한 것 (추가한 것)을 2차원 배열이라고 한다.
// myNumber의 1번째 인덱스 값은?
let myNumber = [[13, 30], [73, 8], [44, 17]];
console.log(myNumber[1]) // [73, 8]
// 1번째 인덱스 값의 0번째 인덱스 값은?
console.log(myNumber[1][0]) // 73
length 프로퍼티를 이용해서 배열의 요소의 개수, 즉 배열의 길이를 알아 낼 수 있다.
.length 온점(dot)을 이용해서 변수가 가지고 있는 속성(property)에 접근할 수 있다.
// familyName라는 배열의 길이를 알아내려면?
let familyName = [ys, mh, hk, yj];
console.iog(familtName.length) // 4
배열과 반복문은 조합되어 많이 사용된다. 기본적인 문제를 풀어보며 어떻게 사용되는지 알아볼 수 있다.
예제1) 반복문을 이용해 배열의 요소를 한번씩 출력하려면?
배열 myNum의 n번째 인덱스를 출력하자 → console.log(myNum[n]) (배열의 값은 인덱스로 조회할 수 있다)조건1) 숫자(n)은 0부터 시작된다.→ let n = 0; 초기화
(인덱스는 0부터 시작한다.)
조건 3) 숫자(n)은 배열의 길이보다 작을 때까지 반복한다. → n < myNum.length; 조건문
(배열의 인덱스는 배열의 길이보다 항상 작기때문)
조건 4) 숫자 (n)은 1씩 증가한다. → n++; ( n = n+1 랑 같음) 증감문
(모든 배열을 출력해야해서 1씩 증가하며 배열을 다 조회한다.)
let myNum = [73, 98, 86, 61];
for(let n = 0; n < myNum.length; n++) {
console.log(myNumber[n]) //
}
예제 2) myNum의 모든 요소를 누적해서 더하기 위해 필요한 조건과, 반복할 구문을 생각해서 적어보기
조건 1) 숫자(n)은 0부터 시작한다. → let n = 0
조건 2) 숫자(n)은 배열의 길이보다 작을 때 까지 반복한다.→ n < myNum.lenght
조건 3) 숫자(n)은 1씩 증가한다. → n ++
내용 4) 인덱스를 통해 구한 모든 배열요소를 누적해서 더한다 → sum = sum + myNum[n]
let myNum = [10, 20, 40, 10];
let sum = 0
for(let n = 0; n < myNum.length; n++) {
sum = sum + myNum;
} // 0 + 10 -> sum + myNum[0]
// 10 + 20 -> sum + myNum[1]
// 30 + 40 -> sum + myNum[2]
// 70 + 10 -> sum + myNum[3]
console.log(sum) // 80;
console.table(arr)
콘솔로그로 배열을 볼 수 있지만, 테이블을 이용하면 표로 한 눈에 볼 수 있다.
let arr = ['young', 'seo']
console.log(arr) // ["young", "seo"]
console.log(console.table(arr))
출처
MDN
코드스테이츠