2차 공부/TIL

24.04.23 배열, 자료의 비파괴와 파괴

공대탈출 2024. 4. 23. 20:59

배열은 여러개의 변수를 한번에 선언해 다룰 수 있는 자료형이다.

let array = ['a', 'b', 'c', 'd', 'e']

여기서 배열 내 요소의 번호는 인덱스로 0부터 시작한다.

array[0] = 'a'

array[1] = 'b'

array[2] = 'c' ....

이런 식으로 꺼내 쓸 수 있다.

 

배열 내 요소의 개수를 확인하고 싶다면 lenght속성을 사용하면 된다.

> array.length
5

 

배열 맨 뒤에 요소를 추가하고자하면 push()메소드를 사용한다.

> array.push('f')
array = ['a', 'b', 'c', 'd', 'e', 'f']

여러개를 추가하면 순서에 맞게 추가된다.

 

또한 인덱스를 사용하여 추가 할 수도 있다.

> array[6] = 'g'
array = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

 

배열 내 특정 요소만 없애고 싶을땐 splice()메소드를 사용한다.

배열.splice(제거시작인덱스, 제거할 요소의 개수)

> array.splice(1, 1)
array = ['b', 'c', 'd', 'e', 'f', 'g']

 

특정 값의 요소가 위치한 인덱스 번호를 알고자 할때는 indexOf()메소드를 사용한다.

배열.indexOf(요소)

> array.indexOf('b')
0

 

문자열도 각 문자들이 인덱스값을 배열처럼 가지는데, 문자열 내에서 특정 단어의 인덱스도 구할 수 있다.

>let string = '가나다 라마바 사아자'
>string.indexOf('라마바')
4

이 때 인덱스값은 찾고자하는 단어의 첫글자의 인덱스값을 보인다.

 

splice메소드는 원하는 위치에 요소를 추가할 수도 있다.

배열.splice(인덱스, 0, 요소)

> array.splice(0, 0, 'a')
array = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

 


자료의 비파괴와 파괴

비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않습니다.

파괴적 처리 : 처리 후에 원본 내용이 변경됩니다.

 

let a = '안녕'
let b = '하세요'

let c = a+b

>c = '안녕하세요'
>a = '안녕'
>b = '하세요'

위와 같이 비파괴적 처리는 c를 a와 b를 연결해서 만들어도 원본인 a와 b가 파괴되지않는다.

 

> let arr = ['a', 'b', 'c']
> arr.push('d')

arr = ['a', 'b', 'c', 'd']

이처럼 처음 선언된 arr과 push메소드 후의 arr이 다르므로 파괴적 처리이다.

 

과거에 메모리가 부족했을 때는 메모리의 효율적 사용을 위해 파괴적 처리를 주로 사용했으나, 지금같은 메모리가 여유로운 때에는 원본의 보호를 위해 비파괴적 처리를 사용한다.

'2차 공부 > TIL' 카테고리의 다른 글

24.04.26 익명함수와 선언적함수  (0) 2024.04.26
24.04.25 while반복문  (0) 2024.04.25
24.04.24 for in, for of 반복문  (0) 2024.04.24
24.04.22 삼항 연산자, 짧은 조건문  (0) 2024.04.22
24.04.21 if, switch 조건문  (0) 2024.04.21