2012-12-03 3 views
8

일부 자바 스크립트 계산 결과가 10,000 개의 요소 배열 인 경우 Node.js repl이이를 인쇄합니다. 그렇게하지 못하게하려면 어떻게해야합니까?Node.js가 인쇄 출력에서 ​​제외되도록 방지

덕분에

+0

여기에는 스위치가 없다고 생각합니다. – xiaoyi

+0

익명 함수로 래핑하는 것은 어떻습니까? 어떤 진술을하고 있습니까? –

+0

여기에는'console' 태그가 있기 때문에 모든 출력을 숨기려면'$ node yourScript.js/dev/null 2> & 1'을 시도하십시오. –

답변

14

표현에 ; null;을 추가하지 않는 이유는 무엇입니까?

null 

또는 단축을 인쇄

new Array(10000); null; 

같이, ;0;

0

난 이미 당신이 익명 함수에 명령의 실행을 래핑 할 수 있습니다이 질문에 대한 코멘트에 말했다. 일종의 결과를 반환하는 반복 된 절차가 있다고 가정 해 보겠습니다. 이처럼 :

우리에게 출력 제공
var some_array = [1, 2, 3]; 

some_array.map(function(){ 

    // It doesn't matter what you return here, even if it's undefined 
    // it will still get into the map and will get printed in the resulting map 
    return arguments; 
}); 

:

[ { '0': 1, 
    '1': 0, 
    '2': [ 1, 2, 3 ] }, 
    { '0': 2, 
    '1': 1, 
    '2': [ 1, 2, 3 ] }, 
    { '0': 3, 
    '1': 2, 
    '2': [ 1, 2, 3 ] } ] 

을하지만 당신은 자기 호출하는 익명 함수에 map 메서드 호출을 래핑하는 경우, 모든 출력이 분실 :

(function(){ 
    some_array.map(function() { 
     return arguments; 
    }); 
})(); 

이 코드는 다음과 같이 출력됩니다 :

undefined 
익명 함수가 아무 것도 반환하지 않기 때문에

입니다.

+1

'0;을 붙이는 것은'some_array.map (function() {return arguments; }); 0;' – akuhn

+0

출력을 최소화하기 위해'Boolean()'또는'typeof()'에 래핑 할 수도 있습니다. – holmberd

7

var 선언 변수에 할당 결과를 사용한다. var 문은 항상 undefined을 반환합니다.

> new Array(10) 
[ , , , , , , , , , ] 

> var a = new Array(10) 
undefined 
1

REPL을 시작할 수 있으며 귀찮게하는 내용을 변경할 수 있습니다. 예를 들어 표현식에 결과가없는 경우 undefined을 인쇄하지 않도록 할 수 있습니다. 또는 표현식의 평가를 감싸고 결과를 반환하지 못하게 할 수 있습니다. 두 가지 작업을 동시에 수행하면 REPL을 REL로 효과적으로 줄일 수 있습니다.

4

노드는 inspect를 사용하여 반환 값의 형식을 지정합니다. inspect를 빈 문자열을 반환하는 함수로 바꾸면 아무것도 표시되지 않습니다.

require('util').inspect = function() { return '' };

관련 문제