본문 바로가기
카테고리 없음

[JavaScript] 입력받기와 배열 초기화

by hbIncoding 2024. 7. 15.

1. 입력 받기

  • 입력받기를 하는 방법에는 prompt와 readline이 있다.

 1) prompt 

  • 쉽게 사용할 수 있지만 node.js 환경에서는 사용할 수 없다는 단점이 있다.
// 문자열을 입력받습니다.
let userInput = prompt("Enter a string:");

// 입력된 문자열을 출력합니다.
console.log("You entered: " + userInput);

 

 1) readline

  • 모듈을 사용해야하는 약간의 번거로움은 있지만 node.js 환경에서도 잘 작동한다.
  • 입력이 끝나고 난후 close()를 해주지 않으면 무한으로 입력을 받으려고 한다.
const readline = require('readline');

// readline 인터페이스를 만듭니다.
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

// 사용자로부터 입력을 받습니다.
rl.question('Enter a string: ', (answer) => {
  // 입력된 문자열을 출력합니다.
  console.log(`You entered: ${answer}`);

  // readline 인터페이스를 닫습니다.
  rl.close();
});

 

2. 배열 초기화

  • 이중 배열의 경우 1차원 배열을 한번 초기화 해주고 2차원 배열을 초기화 해주어야 오류가 발생하지 않는다.
let timeTable = [];
let timeWaitTable = [];

// 2차원 배열 초기화
for (let i = 0; i < 3; i++) {
    timeTable[i] = []; // 각 행을 빈 배열로 초기화
    timeWaitTable[i] = []; // 각 행을 빈 배열로 초기화
    
    for (let j = 0; j < 2; j++) {
        timeTable[i][j] = new Array(4).fill(false); // 각 열을 초기화
        timeWaitTable[i][j] = new Array(4).fill(false); // 각 열을 초기화
    }
}

 

3. Promise, async, await

 1)promise

  • 비동기 처리를 위한 객체로 작업이 완료되었을 때 성공('resolve'), 또는 실패 ('reject')의 상태를 반환한다.
const promise = new Promise((resolve, reject) => {
  // 비동기 작업 수행
  if (성공 조건) {
    resolve('성공한 결과');
  } else {
    reject('실패한 이유');
  }
});

promise.then((result) => {
  // 성공했을 때 처리
}).catch((error) => {
  // 실패했을 때 처리
});

 

 2)async

  • 비동기 작업을 처리하기 위한 함수
  • 함수 내에서 'await'키워드를 사용하여 promise가 처리될 때 까지 대기하고 처리된 값을 반환한다.
async function asyncFunction() {
  try {
    const result = await 비동기_작업();
    return result;
  } catch (error) {
    console.error(error);
    throw new Error('에러 발생');
  }
}

asyncFunction()
  .then((result) => {
    // 성공 처리
  })
  .catch((error) => {
    // 실패 처리
  });

 

 3)await

  • promise가 처리될 때 까지 대기한다.
async function asyncFunction() {
  try {
    const result = await Promise.resolve('비동기 결과');
    console.log(result); // '비동기 결과' 출력
  } catch (error) {
    console.error(error);
  }
}

asyncFunction();

 

 

4. 참조

1) 콘솔로 값 입력받기 : https://velog.io/@zaman17/node.js-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%BD%98%EC%86%94%EB%A1%9C-%EA%B0%92-%EC%9E%85%EB%A0%A5%EB%B0%9B%EA%B8%B0

 

[ node.js ] 자바스크립트 콘솔로 값 입력받기

js를 공부하면서 한번도 콘솔로 값을 받아서 사용하는 문제는 풀어지 못했는데 node.js 영역이여서 그랬나보다이 방법으로 백준에서 js 문제를 풀 수 있다고 하니 정리해보자: readline 모듈은 한 번

velog.io

 

2) async, await, promise 등 : https://springfall.cc/article/2022-11/easy-promise-async-await