javascript 기초

헨도·2022년 11월 13일
0

javascript

목록 보기
13/19

배열

const(변하지 않는 값)인데 수정 가능한 이유는?

그런데 const는 상수이므로 수정이 불가능한데 가능한 이유는 무엇일까?

const target2 = [1, 2, 3, 4]

target2[0] = 0
console.log(target2)
>>> [0, 2, 3, 4]

위의 에시처럼 target2의 변수는 const로 선언되어있다.
const는 상수이므로 변하지 않는다고 했는데, target2 변수의 요소는 수정이 가능했다.
const에는 '새로운 값을 대입(=)을 못한다' 기억하면 된다.

const에 객체(배열, 함수, 객체 리터럴)가 대입된 경우 객체 내부의 속성이나 배열의 요소는 수정할 수 있다.

const target2 = [1, 2, 3, 4]

target2 = ['f', 'g'] // 불가능
target2[0] = ['h'] // 가능

배열 추가하기

배열의 맨 뒤에 추가하기

배열을 만든 후, 중간에 배열을 수정할 수 있다.
배열에 요소를 추가할 수 있고, 특정 인덱스의 요소를 수정할 수도 있으며 제거할 수도 있다.

const target = ['a', 'b', 'c', 'd', 'e'];

target[5] = 'f';
OR 
target[target.length] = 'f';

console.log(target);
>>> ['a', 'b', 'c', 'd', 'e', 'f']

또는 push 함수를 사용하여 요소를 추가할 수 있다.

const target = ['가', '나', '다']

target.push('라');
console.log(target);
>>> ['가', '나', '다', '라']

배열의 맨 앞에 추가하기

const target = ['가', '나', '다'];

target[0] = '라';
console.log(target);
>>> ['라', '나', '다']

'배열[0] = 값' 이라고 생각했지만, 원하는 결과는 나오지 않고 해당 인덱스의 값이 수정되었다.
배열의 맨 앞에 추가하기 위해선 unshift 함수를 사용하면 된다.

const target = ['가', '나', '다'];

target.unshift('라');
console.log(target);
>>> ['라', '가', '나', '다']

배열 수정하기

배열의 수정은 원하는 값의 인덱스와 바꾸려는 값을 써주면 된다.

const target = [1, 2, 3, 4, 5]

target[0] = 0;
console.log(target);
>>> [0, 2, 3, 4, 5]

배열 삭제하기

마지막 요소 삭제하기

pop 함수를 이용하면, 배열의 마지막 요소를 삭제할 수 있다.

const target = [1, 2, 3, 4, 5]

target.pop();
console.log(target);
>>> [1, 2, 3, 4]

첫번째 요소 삭제하기

shift 함수를 이용하면, 배열의 첫번째 요소를 삭제할 수 있다.

const target = [1, 2, 3, 4, 5]

target.shift();
console.log(target);
>>> [2, 3, 4, 5]

중간 요소 삭제하기

splice 함수를 사용하면, 배열의 중간 요소를 삭제할 수 있다.
splice 함수는 shift, pop 처럼 간단한 함수가 아니라 인자값을 넣어주어야한다.

splice(지우고 싶은 인덱스, 지우고 싶은 인덱스로부터 몇개를 지울지)

const target = ['가', '나', '다', '라', '마'];

target.splice(1, 1);
console.log(target);
>>> ['가', '다', '라', '마']

target.splice(2, 2);
console.log(target);
>>> ['가', '나', '마']

splice 함수

splice 로 값을 지우기만 하는 것이 아닌 지워진 자리에 다른 값을 넣을 수 있다.
splice의 3번째 자리부터 바꿀 값들을 넣어준다.

const target = ['가', '나', '다', '라', '마']

target.splice(1, 3, '타', '파');
console.log(target);
>>> ['가', '타', '파', '마']

또, 값을 지우지 않고 넣는 방법도 있다.
('나' 와 '다' 사이)

const target = ['가', '나', '다']

target.splice(2, 0, '바');
console.log(target);
>>> ['가', '나', '바', '다']
profile
Junior Backend Developer

0개의 댓글