2017-03-17 61 views
1

這是從另一個程序員Codewars解決方案在javaScript中,在reduce(),map()中使用時,下劃線代表什麼?

目的得出:在這個時間點上的代碼被用於返回的行和列和對角線的總和,看是否所有的款項規定的這個4x4的魔力,有相同數量的

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'中,第二個參數保存輸入數組中每個連續值的值。該行代碼忽略該參數並僅根據累加器's'和連續索引號'i'產生結果。該代碼生成一個函數'_d2',它接受一個二維數組並返回對角線從左下角到右上角的和:'arr [3] [0] + arr [2] [1] + arr [1] [2] + arr [0] [3]' – JLRishe

相關問題