코딩쌀롱
[JS] 반복문 사용하지 않고 배열 생성, 값 넣기 본문
아래의 두 배열을 반복문 사용하지 않고 만들어보자.
① 인덱스가 곧 원소이고, 길이가 num인 배열
ex) num = 3 → [ 0, 1, 2 ]
num = 5 → [ 0, 1, 2, 3, 4 ]
② 1부터 num까지의 원소를 갖는 배열
ex) num = 3 → [ 1, 2 , 3 ]
num = 5 → [ 1, 2, 3, 4, 5 ]
1. new Array() + fill + map
// 1번
const getArr1 = num => new Array(num).fill(0).map((_, i) => i);
// 2번
const getArr2 = (num, start = 1) => new Array(num).fill(0).map((_, i) => start + i);
2. Array.from()
// 1번
const getArr1 = num => Array.from({ length: num }, (_, i) => i);
// 2번
const getArr2 = (num, start = 1) => Array.from({ length: num }, (_, i) => i + start);
Array.from()의 첫 번째 인자는 배열로 변환할 유사배열객체나 반복가능한 객체이고, 두 번째 인자는 optional로 배열의 모든 요소에 호출할 맵핑 함수이다.
new Array(), Array.from() 두 방법 간 차이점이 있다.
new Array()로 생성하면 empty로 채워진다. (empty는 순회에서 제외된다)
Array.from()로 생성하면 undefined로 채워진다. (undefined는 순회 가능)
3. new Array() + keys
// 1번
const getArr1 = num => [...new Array(num).keys()];
// 2번
const getArr2 = (num, start = 1) => [...new Array(num).keys()].map(e => e + start);
keys() 메서드는 배열의 각 인덱스를 키 값으로 가지는 새로운 Array Iterator 객체를 반환한다.
Array Iterator는 도대체 뭐지 왜 구글 검색에도 안 나오는 거냐 너는 누구냐..🤷🏻♀️
참고 링크에 있는 블로그를 읽고 느낌은 알 것 같은데 이해는 못 했다. 공부 필요...
참고
블로그 - 배열 메소드 : entries(), keys(), values()
학습 단계로 잘못된 정보가 있을 수 있습니다. 잘못된 부분에 대해 알려주시면 곧바로 정정하도록 하겠습니다🙂
'개발공부' 카테고리의 다른 글
[프로그래머스_JS] 모의고사 (0) | 2021.01.20 |
---|---|
[프로그래머스_JS] 크레인 인형뽑기_reduce로 행, 열 교체 (0) | 2021.01.20 |
원형 연결 리스트(circular linked list), 이중 연결 리스트(double linked list) (0) | 2021.01.14 |
[LeetCode_JS] 83. Remove Duplicates from Sorted List (0) | 2021.01.13 |
Comments