250826 - 왜 안되지? [] 말고 ()를 쓰자

LIHA·2025년 8월 26일
post-thumbnail

다 맞췄다고 생각했는데 문제가 안 풀린다 - 메서드에는 ()를 쓰자

const countdown = (startNumber, endNumber) => {
    const numbers = [];
    for (let i = startNumber; i >= endNumber; i--) {
        numbers.push[i];
    }
    
    console.log(numbers)
    return numbers;
}

function solution(start_num, end_num) {
    const answer = countdown(start_num, end_num)
    return answer;
}

이렇게 써놓고 안된다고 하고 있었다. numbers.push[i]; 가 아니라 numbers.push(i); 를 썼어야 했다.

문자열 읽어오기 - readline 그거 어떻게 쓰는건데

프로그래머스에서 프롬프트 입력을 받아 출력해주는 문제를 풀고 있는데, 문득 '나는 ES6 문법만 배웠는데 import 할 수는 없나?' 하는 생각이 들었다.

-> 결론은 안 된다. package.json에 "type" : "module" 을 써줘야 하는데 프로그래머스에선 그럴 수 없기 때문. (프로그래머스의 package.json을 뜯을 순 없으니까...)

굉장히 화를 낸다. 그래... 미안...

그러니, 당장은 익숙하지 않겠지만 require를 쓰자.
사실 JS에 module이 적용되어 import를 쓸 수 있게 된건 10년 정도 밖에 되지 않는 것... 으로 알고 있는데?! 아무튼 그렇다.

그러니 이렇게 써주면 된다.

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close',function(){
    console.log(input[0]);
});

아니 그런데 function 이라고 쓰는게 꼴배기 싫은데?! 라는 생각이 든다면 화살표 함수로 써주자.

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', (line) => {
    input = [line];
}).on('close', () => {
    console.log(input[0]);
});
profile
갑자기 왜 춤춰?

0개의 댓글