Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 부울 행렬의 특정 인덱스를 업데이트하는 방법

JavaScript에서 true 또는 false와 같은 부울(Boolean) 값으로 구성된 행렬(matrix)을 생성하거나 특정 인덱스를 업데이트하려면 fill() 메서드를 활용하는 것이 가장 간단하고 효율적인 방법입니다.

fill() 메서드는 배열의 모든 요소를 지정한 정적(static) 값으로 채우는 역할을 합니다. 이 메서드를 단계별로 적용하면 손쉽게 2차원 부울 행렬을 만들 수 있습니다.

예제

const array = Array(4);
var fillWithTrueValue = array.fill(true);
const matrixWithOnlyBooleanTrue = Array(4).fill(fillWithTrueValue);
console.log(matrixWithOnlyBooleanTrue);

코드 단계별 설명

위 코드는 다음 순서로 동작합니다.

1단계: Array(4)는 길이가 4인 빈 배열을 생성합니다.
2단계: fill(true)를 호출하여 해당 배열의 모든 요소를 true로 채웁니다.
3단계: 다시 Array(4).fill(...)를 사용해 true로 채워진 배열을 행(row)으로 하는 4×4 크기의 2차원 부울 행렬을 완성합니다.

프로그램 실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다 −

node fileName.js

여기서는 파일 이름이 demo59.js라고 가정합니다.

출력 결과

코드를 실행하면 다음과 같은 출력 결과가 나타납니다 −

PS C:\Users\Amit\JavaScript-code> node demo59.js
[
    [ true, true, true, true ],
    [ true, true, true, true ],
    [ true, true, true, true ],
    [ true, true, true, true ]
]

주의 사항: 행렬의 참조 공유 문제

Array(4).fill(fillWithTrueValue) 방식으로 생성된 행렬은 모든 행이 동일한 내부 배열 객체를 참조합니다. 따라서 한 행의 특정 인덱스 값을 변경하면 나머지 모든 행의 같은 위치 값도 함께 변경됩니다.

각 행이 서로 독립적인 별도의 배열을 갖도록 하려면 map() 또는 Array.from()을 사용하는 것이 안전합니다.

const independentMatrix = Array.from({ length: 4 }, () => Array(4).fill(true));
independentMatrix[0][0] = false; // 첫 번째 행만 변경됨
console.log(independentMatrix);

이처럼 fill() 메서드를 활용하면 부울 행렬을 빠르게 초기화할 수 있으며, 참조 공유 여부에 따라 적절한 생성 방식을 선택하는 것이 중요합니다.