23.09.21
for문 말고 더 효율적인 코드가 없을까 찾아보다가
const len = 3, val = 2
const arr = new Array(5).fill(0) // [0, 0, 0, 0, 0]
const arr2 = new Array(len).fill(val) // [2, 2, 2]
23.10.31 (백준 2563)
2차원 배열 초기화 방법은 위처럼 하면 안 된다.
∵ Array.fill() 함수는 메모리 참조하여 복사하기 때문에,
어떤 동작을 수행하든 모든 열에 똑같이 적용되는 불상사 발생한다.
∴ 길이와 값을 설정할 수 있는 Array.from(arrayLike, mapFn) 을 이중으로 사용한다.
🔖 Array.from(arrayLike, mapFn)
1. { length: N }
2. new Array( N )
3. Array( N )
// 길이가 N인 배열 생성
Array.from( { length: N }, mapFn )
Array.from( new Array(N), mapFn )
Array.from( Array(N), mapFn )
🔖 Array.from(arrayLike, mapFn)
1. ( ) => 0
2. ( ) => [ ]
3. ( ) => Array.from( { length: 10 }, () => 0 )
🚫 error case1. 모든 열에 동일한 값 (얕은 복사)
() => new Array(10).fill(0))
🚫 error case2. 함수 일부만 변수 선언
const rowArr = Array.from({ length: N }, ( ) => 0)
Array.from(arrayLike, () => rowArr)
// 모든 값을 0으로 초기화
Array.from( arrayLike, () => 0 )
// 빈 2차원 배열로 초기화
Array.from( arrayLike, () => [] )
// 각 요소가 [0, 0, 0]인 2차원 배열로 초기화
// case1
Array.from( arrayLike, () => Array.from( { length: 3 }, () => 0 ) )
🚫 // 모든 열에 동일한 값 (얕은 복사)
Array.from( arrayLike, () => new Array(3).fill(0) )
// case2
const rowArr = () => Array.from( { length: 3 }, () => 0 )
Array.from( arrayLike, rowArr )
🚫 // 함수 자리에 변수를 이용할 때는 변수 자체가 함수여야한다!
const rowArr = Array.from( { length: 3 }, () => 0 )
Array.from( arrayLike, () => rowArr )
ref.
[Node.js] Javascript: 지정한 길이에 맞게 배열을 선언하고 값을 초기화하는 방법들
배열 선언 및 초기화 방법 길이가 N인 배열 arr을 선언하면서 동시에 값을 초기화하고 싶은 경우 CASE 1: for문 이용 const N = 5; // 길이 N을 5라고 가정 let arr = []; for(let i=0; i
miiingo.tistory.com
[Js] 2차원 배열 new Array().fill()로 값 할당할 때 주의할 점
요새 프론트엔드가 js로 코딩테스트 보는게 많아져서 js로 여러 알고리즘 문제를 풀고있는데... 알고리즘 문제를 풀다보면 배열을 초기화 해놓고 그 배열을 이용하는 경우가 많다. 그래서 js도 배
aeunhi99.tistory.com
Array.from() - JavaScript | MDN
Array.from() 정적 메서드는 순회 가능 또는 유사 배열 객체에서 얕게 복사된 새로운 Array 인스턴스를 생성합니다.
developer.mozilla.org
'A-HA💡 > JS' 카테고리의 다른 글
[JS/알고리즘] 문자↔︎숫자 변환 (아스키코드)⭐️⭐️ (0) | 2023.09.26 |
---|---|
[JS/알고리즘] 함수 vs. 메소드 차이 (0) | 2023.09.25 |
[JS/알고리즘] 배열에서 값 삭제하는 6가지 방법⭐️ (0) | 2023.09.25 |
[JS/알고리즘] 배열 요소 개행(줄바꿈) 없이 출력하는 방법⭐️⭐️ (0) | 2023.09.21 |
[정규표현식] \s 와 \s+, 그리고 \S 의 차이점 (0) | 2023.09.19 |