18

何らかの JavaScript 計算の結果が 10,000 要素の配列である場合、Node.js repl はこれを出力します。そうならないようにするにはどうすればよいですか?

ありがとう

4

6 に答える 6

27

式に追加してみません; null;か?

のように

new Array(10000); null;

印刷する

null

またはさらに短く、使用;0;

于 2012-12-09T13:16:13.203 に答える
9

で宣言された変数に結果を割り当てますvarvarステートメントは常に を返しundefinedます。

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

> var a = new Array(10)
undefined
于 2012-12-09T15:08:50.927 に答える
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

無名関数は何も返さないためです。

于 2012-12-03T13:20:18.190 に答える