N개의 숫자의 배열 만들기

Posted on Jun 2, 2024

코딩테스트 중에 숫자 N이 주어졌을 때 N개의 배열을 만들어서 forEach를 하고 싶었다.

그냥 for문이나 while문으로 하면 되겠지만, 배열의 메소드가 익숙해버려서, 해당 방법을 찾기 시작했다.

1중배열 (n개의 배열)

  1. for
function createArray(n) {
  const result = []
  for (let i = 1; i <= n; i++) {
    result.push(i)
  }
  return result
}
  1. while
function createArray(n) {
  const result = []
  let i = 1

  while (i <= n) {
    result.push(i)
    i++
  }

  return result
}
  1. Array.from
//* Recommend
const array = Array.from({ length: n }, (_, i) => i + 1)
  1. Array.map
const array = Array(n)
  .fill()
  .map((_, i) => i + 1)

2중배열로 만들기, ex)[[1], [1,2], [1,2,3], [1,2,3,4], [1,2,3,4,5]]

  1. for
function createArrays(n) {
  const result = []
  for (let i = 1; i <= n; i++) {
    const arr = []
    for (let j = 1; j <= i; j++) {
      arr.push(j)
    }
    result.push(arr)
  }
  return result
}
  1. while
function createArrays(n) {
  const result = []
  let i = 1

  while (i <= n) {
    const arr = []
    let j = 1

    while (j <= i) {
      arr.push(j)
      j++
    }

    result.push(arr)
    i++
  }

  return result
}
  1. Array.from
//* Recommend
function createArrays(n) {
  return Array.from({ length: n }, (_, i) =>
    Array.from({ length: i + 1 }, (_, j) => j + 1)
  )
}
  1. Array.map
function createArrays(n) {
  return Array(n)
    .fill()
    .map((_, i) =>
      Array(i + 1)
        .fill()
        .map((_, j) => j + 1)
    )
}

n x n 2차원 배열 만들기

Array.from({ length: n }, () => Array(n).fill(0))
comments powered by Disqus