2012-12-03 21 views
8

यदि कुछ जावास्क्रिप्ट गणना का परिणाम 10,000 तत्वों की एक सरणी है, तो नोड.जेएस प्रतिकृति इसे प्रिंट करता है। मैं इसे ऐसा करने से कैसे रोकूं?मुद्रण आउटपुट से नोड.जेएस प्रतिलिपि को रोकें

धन्यवाद

+0

मुझे नहीं लगता कि इसके लिए एक स्विच है। – xiaoyi

+0

इसे किसी अज्ञात फ़ंक्शन में लपेटने के बारे में कैसे? आप किस कथन को निष्पादित कर रहे हैं? –

+0

चूंकि इसे 'कंसोल' टैग किया गया है, इसलिए सभी आउटपुट –

उत्तर

14

आप अपनी अभिव्यक्ति में ; null; क्यों नहीं जोड़ते?

new Array(10000); null; 

में के रूप में जो प्रिंट

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() {वापसी तर्क; }); 0; ' – akuhn

+0

आउटपुट को कम करने के लिए आप इसे 'बूलियन()' या 'टाइपऑफ()' में भी लपेट सकते हैं। – holmberd

7

एक चर var साथ घोषित करने के लिए परिणाम असाइन करें। var कथन हमेशा undefined लौटाते हैं।

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

> var a = new Array(10) 
undefined 
1

आप आरईपीएल खुद के शुरू करने और कुछ भी है कि आप गुस्सा दिलाती बदल सकता है। उदाहरण के लिए आप इसे बता सकते हैं कि undefined मुद्रित न करें जब किसी अभिव्यक्ति का कोई परिणाम न हो। या आप अभिव्यक्तियों के मूल्यांकन को लपेट सकते हैं और उन्हें परिणाम लौटने से रोक सकते हैं। आप एक ही समय में इन बातों के दोनों करते हैं आप प्रभावी रूप से एक REL को आरईपीएल को कम:

node -e "var vm = require('vm'); require('repl').start({ignoreUndefined: true, eval: function(cmd, ctx, fn, cb) {var err = null; try {vm.runInContext(cmd, ctx, fn);} catch (e) {err = e;} cb(err);}})" 
4

नोड वापसी मान स्वरूपित करने के लिए निरीक्षण का उपयोग करता है। एक फ़ंक्शन के साथ निरीक्षण बदलें जो केवल खाली स्ट्रिंग देता है और यह कुछ भी प्रदर्शित नहीं करेगा।

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

संबंधित मुद्दे