질문 : var arr = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0) 를 js로 바꾸면?
주어진 코드를 JavaScript의 더 모던한 표현으로 바꾸면 아래와 같습니다:
javascriptconst arr = Array.from({ length: 13 }, () => 0);
위의 코드는 배열을 생성하고, 배열의 길이를 13으로 설정한 후, 배열의 각 요소를 0으로 채우는 방식입니다.
Array.from() 메서드는 배열로부터 새로운 배열을 생성하는데 사용되며, 첫 번째 인자로 배열처럼 반복 가능한(iterable) 객체를 받고, 두 번째 인자로는 매핑 함수를 받습니다. 이 경우에는 길이가 13인 배열을 생성하고, 매핑 함수로 () => 0을 사용하여 배열의 각 요소를 0으로 초기화하고 있습니다.
또한, const를 사용하여 변수를 선언함으로써 변수가 재할당되지 않음을 나타내고 있습니다. let을 사용하면 변수가 재할당 가능하게 됩니다.
질문 : 이어서 다른방식으로 표현
물론, 다른 방식으로도 배열을 초기화할 수 있습니다. 아래의 코드는 배열의 길이와 값을 설정하는 방식으로 표현한 예시입니다:
javascriptconst arr = Array(13).fill(0);
위의 코드에서 Array(13)은 길이가 13인 배열을 생성하며, .fill(0)은 배열의 모든 요소를 0으로 채우는 역할을 합니다.
또 다른 방법으로는 배열 리터럴을 사용하여 초기화할 수도 있습니다:
javascriptconst arr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
이 코드는 길이가 13이고 모든 요소가 0인 배열을 생성합니다. 이 방식은 배열의 길이와 초기값을 직접 명시하는 방법입니다.
어떤 방식을 선택하느냐는 코드의 가독성과 개발자의 취향에 따라 다를 수 있습니다.
질문 : 이어서 그냥 var arr = [13] 은 안되는건가?
var arr = [13]은 길이가 1인 배열을 생성하며, 해당 배열의 첫 번째 요소로 13이 들어간 형태입니다. 이는 배열의 길이가 13이 아닌, 첫 번째 요소가 13인 배열을 생성하는 것입니다.
따라서 var arr = [13]은 주어진 요구사항인 길이가 13이고 모든 요소가 0인 배열을 생성하는 것과는 다릅니다. 원하시는 대로 배열을 생성하기 위해서는 앞서 언급한 방법 중 하나를 사용하거나, 다음과 같이 작성할 수 있습니다:
javascriptvar arr = new Array(13).fill(0);
이렇게 하면 길이가 13이고 모든 요소가 0인 배열을 생성하게 됩니다.
질문 : 그렇다면 var arr = new Array(13).fill(0); 와 var arr = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0) 는 같은건가?
var arr = new Array(13).fill(0);와 var arr = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0);는 같은 결과를 생성하지만, 미묘한 차이가 있습니다.
-
var arr = new Array(13).fill(0);: 이 코드는 먼저 길이가 13인 배열을 생성하고, .fill(0) 메서드를 사용하여 모든 요소를 0으로 채웁니다. 이 방식은 배열의 길이와 초기값을 한 번에 설정하는 방법입니다.
-
var arr = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0);: 이 코드는 초기값을 나열한 후에 배열을 생성합니다. 배열의 길이는 초기값의 개수에 따라 결정됩니다. 여기서는 0을 13번 나열했으므로 길이가 13인 배열이 생성됩니다.
결과적으로 두 코드 모두 길이가 13이고 모든 요소가 0인 배열을 생성합니다. 하지만 코드의 의미와 표현 방식에 약간의 차이가 있으므로 사용 목적과 개발자의 스타일에 따라 선택하면 됩니다. 또한, 두 번째 방식은 초기값을 나열하는 과정이 반복되기 때문에 코드를 작성하는 데 있어서 불편할 수 있습니다.
'gpt 정리' 카테고리의 다른 글
타입 강제 변환 (0) | 2024.02.12 |
---|---|
문자를 소수점 표시 (0) | 2024.02.09 |
replaceAll() (0) | 2024.02.09 |
vue 에서 focus out 하는 방법 (0) | 2024.02.09 |
vue 에서 trim 사용 (0) | 2024.02.09 |