使用ES6改進我的算法知識(對於ES6我是相當新的)並且想知道是否有任何方法(如果在所有表演者中)避免在我寫的每個數組函數中最大的一個for循環?任何避免for循環的方法? (ES6/JavaScript)
function largestEach(arr) {
for(const [i,v] of arr.entries())
arr[i] = v.sort((a,b) => b - a).filter((e,i) => i === 0);
return arr.reduce((a,b) => a.concat(b));
}
largestEach([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
控制檯日誌:[5, 27, 39, 1001]
這是正確的。
這是概念,所以沒有真正的使用案例我使用它。我不反對循環只是好奇我的更好的選擇是在ES6(或一般的JS)。純粹好奇!
'返回arr.map(V => Math.max(。 ..v));' – 4castle
我想出了和@ 4castle一樣的東西。請注意,如果任何內部數組爲空,您會爲它們得到一個'-Infinity'的結果,這比在這種情況下問題中的函數更好(輸出簡單地跳過任何空數組,返回與輸入不同長度的數組)。 – nnnnnn
@ 4castle所以... ...擴展語法基本上擴展了這個子數組,並只返回最大值...有趣! – simplexity