본문 바로가기
JavaScript

20210106#(17) JavaScript Array(배열)

by zho 2021. 1. 5.

#1 JavaScript 배열 할당 방법

 

let Array = ['apple', 'banana', 'coconut'] 이렇게 할당하게 되면

Array[0] = apple 

Array[1] = banana 

Array[2] = coconut 

이렇게 할당이 된다.

 

document.write(Array[0]); -> apple 출력

document.write(Array[1]); -> banana 출력

document.write(Array[2]); -> coconut 출력

 

#2 JavaScript 배열 크기

 

배열의 크기는 length를 이용한다.

 

let Array = ['apple', 'banana', 'coconut','1','2']

document.write(Array.length); -> 5 출력

 

#3 JavaScript 원소 추가

 

#a 배열의 끝에 원소 추가

push

 

#b 배열의 끝에 복수개의 원소 추가

concat

 

#c 배열의 앞에 원소 추가

unshift

 

#d 배열 사이에 원소 추가

splice

 

위 예시의 출력 값은 다음과 같다. 

a,b,c,d
a,b,c,d,e
a,1,a,b,c,d
a,b,c,WHAT,d
WHAT,d
a,b,WHAT,d

 

push, concat 그리고 unshift는 이해가 쉬울 텐데, splice는 헷갈릴 수도 있다.

splice는 첫 번째 인자에 해당하는 원소부터 두번째 인자에 해당하는 원소의 숫자만큼의 값을 배열로부터 제거한 뒤 리턴한다. 그리고 세번째 인자부터 전달된 인자들을 첫번째 인자의 원소 뒤에 추가한다. (생활코딩 참고)

 

위 설명도 이해가 안 간다면 내가 쉽게 설명해보도록 하겠다.

splice의 형태는 splice(start[, deleteCount[, item1[, item2[, ...]]]]) 다음과 같다.
예를 들어 arr = [1,2,3,4,5,6,7,8,9]라는 배열이 있다.

arr.splice(3,1,'any'); -> 123any56789

 

첫 번째 나오는 start3은 arr[3] 자리라고 이해하면 편하다. 

arr = [1,2,3,4,5,6,7,8,9] 에서 arr[3]은 4인데, arr.splice(3,1,'any'); 이후 arr[3]은 'any' 가 들어가게 됐다.

(참고로 start에 만약 음수가 나온다면 ex)-4 뒤에서 4번째라고 생각하면 된다.)

 

두 번째에 나오는 deleteCount 즉  1은 이 숫자만큼 뒤에 있는 원소를 차례대로 제거하는 것이다.

그렇기에 원래 arr.splice(3,0,'any'); 이었다면 0개 원소를 삭제하는 것이기에 -> 123any456789 가 출력이 된다. 

 

세 번째에 나오는 item 즉 any는 start의 숫자 즉 array[start]에 item 이 들어가게 된다.

위 예시는 start가 3이기에 arr[3] 자리에 any가 들어갔음을 확인할 수 있다.

 

 

그리고 또 재밌는 점은

이렇게 선언하면 document.wirte(arrSplice2) -> WHAT,d

                         document.wirte(arrSplice11) -> a,b,c

삭제된 요소들은 arrSplice11에 저장이 된다.

 

#4 JavaScript 원소 삭제

 

#a 배열 앞 원소 삭제

shift

 

let arr1 = ['a','b','c','d','e'];

arr1.shift();

document.write(arr1);

 

-> b,c,d,e

 

#b 배열 끝 원소 삭제

pop

 

let arr1 = ['a','b','c','d','e'];

arr1.pop();

document.write(arr1);

 

-> a,b,c,d

 

#5 JavaScript 배열 정렬

 

 

let arr1 = ['b','2','A','c','a'];

arr1.sort();

document.write(arr1);

 

-> 2,A,a,b,c

 

+ 역순으로 정렬

 

let arr1 = ['b','2','A','c','a'];

arr1.reverse();

document.write(arr1);

 

-> c,b,a,A,2

 

728x90