예시 1: 배열의 모든 요소들을 특정 값으로 바꾸고 싶을 때, [1, 2, 3, 4] => [0, 0, 0, 0]
예시 2: 배열의 A인덱스의 요소부터 B인덱스의 요소까지 특정 값으로 치환하고 싶을 때, [1, 2, 3, 4] => [1, 0, 0, 4]
위와 같은 경우 fill() 함수를 사용하면 된다.
fill() 함수 사용법
fill(치환 값) | 배열의 모든 요소들을 치환 값으로 치환 |
fill(치환 값, 시작 인덱스) | 배열의 시작 인덱스의 요소부터 마지막 요소까지 전부 치환 값으로 치환 |
fill(치환 값, 시작 인덱스, 끝 인덱스) | 배열의 시작 인덱스의 요소부터 끝 인덱스 전의 요소까지 전부 치환 값으로 치환 |
예제: 배열의 모든 요소들을 특정 값으로 치환하기.
const arr = [1, 2, 3, 4];
arr.fill(0);
console.log(arr); // [0, 0, 0, 0]
참고로, 치환 값은 다른 데이터 타입도 된다, 예: 'abc' 혹은 true 혹은 undefined 등등.
예제: 배열의 #번째 인덱스의 요소부터 마지막 요소까지 전부 특정 값으로 치환하기.
const arr = [1, 2, 3, 4];
arr.fill(0, 1);
console.log(arr); // [1, 0, 0, 0]
시작 인덱스가 1이기 때문에, 인덱스 1의 요소인 2부터 마지막 요소 4까지 전부 0으로 치환된 모습.
예제: 배열의 마지막에서 #번째 인덱스의 요소부터 마지막 요소까지 전부 특정 값으로 치환하기.
const arr = [1, 2, 3, 4];
arr.fill(0, -1);
console.log(arr); // [1, 2, 3, 0]
위에 예제와 동일해 보이지만 시작 인덱스를 음수로 바뀐 게 전부다.
인덱스 숫자가 음수이면, 그 뜻은 마지막에서 #번째라는것이다.
예: -1 = 마지막 인덱스.
예: -2 = 마지막에서 두 번째 인덱스.
예제: 배열의 A번째 인덱스의 요소부터 B번째 인덱스의 요소까지 전부 특정 값으로 치환하기.
const arr = [1, 2, 3, 4];
arr.fill(0, 1, 3);
console.log(arr); // [1, 0, 0, 4]
코드를 보면 시작 인덱스가 1이고 끝 인덱스가 3이기 때문에, 결괏값을 [1, 0, 0, 0]로 예상했을 것이다.
하지만 맨 위에 fill() 함수 사용법의 차트를 보면 치환의 범위는 시작 인덱스의 요소부터 끝 인덱스의 전 요소까지라고 명시되어 있다.
즉, 끝 인덱스의 요소는 치환 범위에 포함되지 않는다.
만약 결괏값을 [1, 0, 0, 0]로 원한다면 끝 인덱스에 1을 더한 arr.fill(0, 1, 4)로 실행해 보자.
이번 예제가 헷갈린다면 다음과 같이 기억하는 게 편할 것이다.
A번째 인덱스부터 B번쨰 인덱스까지 특정 값으로 치환하고 싶다 => fill(치환 값, A인덱스, B인덱스 + 1)
'코딩 > Javascript' 카테고리의 다른 글
자바스크립트 - 배열의 특정 요소를 찾아 반환하기 (find() 함수) (0) | 2023.07.22 |
---|---|
자바스크립트 - 배열의 특정 요소만 골라내기 (filter() 함수) (0) | 2023.07.19 |
자바스크립트 - 배열의 모든 요소가 조건문을 통과하는지 확인하기 (every() 함수) (0) | 2023.07.13 |
자바스크립트 - 배열의 각 요소의 인덱스와 요소를 새로운 배열에 출력하기 (entries() 함수) (0) | 2023.07.10 |
자바스크립트 - 배열의 연속되는 요소들을 특정 인덱스에 복사하기 (copyWithin() 함수) (0) | 2023.07.07 |