getEmptyBoard() {
return Array.from(
{length: ROWS}, () => Array(COLS).fill(0)
);
}
ㅎㅇ 이번에 js 배우려고 클론코딩중인데 이게 뭔말인지 모르겠음
{length: ROWS}, () => Array(COLS).fill(0)
array.from을
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
이렇게 쓰는것까지는 알았는데 그 다음을 뭐라 검색해야하는지 모르겠다
그거 MDN 예제지? 저 위에 array-like object 설명 보면 length 속성이 있고 indexing이 가능하면 다 된다고 하니까 첫 인자를 저렇게 줄 수 있음
좆같은 트릭을 2개나 썼네
나도 저거 설명 읽기 전까지는 뭔지 도통 모르겠더라
from은 배열조무사 같은애들 배열로 만들어주는건데 length 속성 있는 객체는 그 길이만큼의 배열이 나오고 2번 인자로 원소 하나하나에 적용할 함수를 받음 Array.from(x, y)는 Array.from(x).map(y) 로 보면댐
Array.from({length: n}) 달랑 이렇게 하면 길이 n짜리 undefined 배열 튀어나오고
Array(n) 이거 하면 n만큼 길이의 배열이 나오는데 이대로 쓰면 empty 배열에 길이가 n인 이상한게 튀어나옴
Array(n).map(x => 10) 이렇게 하면 길이 n짜리 10의 배열이 아니가 계속 길이 n짜리 empty 배열이 튀어나와서 못쓰는데 fill로 멀쩡한 배열로 만들 수 있음
ROWS 크기만큼 배열을 선언하고, 각 Row안에는 COLS 크기의 배열이 할당. 각 COLS 크기의 배열은 0으로 채워짐.
이게 왜 좆같은 트릭이지
논리적으로 생각하면 말이 되긴 하네