2017-03-17 5 views
1

これは、目的別のコーダCodewars溶液からjavaScriptでは、reduce()、map()内で使用する場合、アンダースコアは何を表しますか?

を誘導した。この時点でコードは、全ての和は、この4×4魔法の記載かどうかを確認するために、行と列及び対角の和を返すために使用されています同じ番号が

var arr = [ 
    [9, 6, 3, 16], 
    [4, 15, 10, 5], 
    [14, 1, 8, 11], 
    [7, 12, 13, 2] 
]; 

var _r = arr.map(v => v.reduce((a, b) => a + b), 0) 
var _c = _r(arr.map((v, i) => v.map((_, j) => arr[j][i]))); 
var _d1 = arr = arr.reduce((s, _, i) => s + arr[i][i], 0); 
var _d2 = a => a.reduce((s, _, i) => s + a[a.length - 1 - i][i], 0); 

console.log(_r); 
console.log(_c); 
console.log(_d1); 
console.log(_d2) 

問題です。しかし、事私は、私の頭のラウンドは、このコードでアンダースコアがために使用されているものである任意のアイデアを得ることができませんか?

+1

これは単なる変数名です。変数名には$と_を使用できます。 – dfsq

+2

これはUnderscore.jsで一般的に使用されていますが、任意の変数にすることができます:http://underscorejs.org/ –

+0

これを確認してください。 http://stackoverflow.com/questions/8288756/in-javascript-what-does-this-underscore-mean – UDID

答えて

1

この特定のケースでは、コードを書く人が使用する予定のないパラメーターのパラメーター名として使用されます。

彼らはこれらのパラメータ名を与えることを迷惑にしたくないので、_という名前を付けました。

+0

この場合、' var _d2 = a => a.reduce((s、_、i)=> s + a [a.length - 1 - i] [i ]、0); 'どのパラメータで '_'が表すのか? –

+0

@ A.Tran 'Array#reduce'では、2番目のパラメータは入力配列の連続する各値の値を保持します。そのコード行はそのパラメータを無視し、アキュムレータ 's'と連続したインデックス番号' i'だけに基づいて結果を生成します。このコードは、2次元配列をとり、左下から右上に対角線の合計を返す関数 '_d2'を生成します:' arr [3] [0] + arr [2] [1] + arr [1] [2] + arr [0] [3] ' – JLRishe

関連する問題