2016-05-28 75 views
0

我需要幫助,瞭解如何使減少這樣的陣列:JS如何減少數組的索引?

a=[ ["ww","fsf",40],["ww","fsf",30],["ww","fsf",10]] 

我想學習如何使用該方法減少總結40 + 30 + 10。我知道如果數組[40,30,10]如何做。 任何人都可以幫助我嗎?謝謝。

回答

4

.reduce適用對蓄能器和陣列的每個值的函數(從左到右),以將其降低到一個值:

a.reduce(callback[, initialValue]) 

你的值將是數組:

["ww","fsf",40] 
["ww","fsf",30] 
["ww","fsf",10] 

所以,你可以使用:

a.reduce(function(sum, value) { 
    return sum + value[2]; 
}, 0); 

或者用ES6新arrow functions

a.reduce((sum, value) => sum + value[2], 0); 
+0

謝謝。這非常有用。 – user1774309

+0

您在箭頭函數示例中缺少初始值。 –

+0

@torazaburo感謝您通知我:-) – andlrc

2
a.reduce((sum, row) => sum + row[row.length - 1], 0) 
+1

你能解釋一下=>?你可以使用reduce中的語法function(){}來編寫相同的代碼嗎?謝謝。 – user1774309