[JS] 18. 취향껏 배열 만들기




항상 헷갈리는 배열 만들기.
특히 내가 원하는 nXm 배열을 만들기 위해 당장 기억이 나지 않아 2중for문을 돌린 적이 많다.
그러다 리팩토링할때 검색해서 Array.map이나 Array.from 검색해보기..😭
오늘에서라도 제대로 정리해서 다시는 밖에서 찾아보지 말자!

1. [1,2,3,4,5] 배열 만들기

// index 순으로
const indexArr = new Array(5).fill(null).map((_, i) => i + 1);
console.log(indexArr);
[1, 2, 3, 4, 5];
  • new Array(갯수)
  • .fill(x) : x로 채워진다.
  • 반환된 배열을 체이닝을 통해 map 돌려준다.


2. map/visited용 2차원 배열 만들기

// 5X6 map(visited) 만들기
const visited = Array.from(Array(5), () => Array(6).fill(0));
console.log(visited);
[
  [0, 0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0, 0],
];
  • Array.from 메서드 사용
  • 첫번째 매개변수 : 배열로 변환하고자 하는 유사 배열 객체 or 반복 가능한 객체
  • 두번째 매개변수 : 첫번째 매개변수에 대한 콜백 (배열의 모든 요소에 대해 호출할 맵핑 함수)


Array.from 함수 사용법 다시 한번 더!

// 각 요소 두번 더하기
const hap = Array.from([1, 2, 3], x => x + x);
console.log(hap);
[ 2, 4, 6 ]