b) => a - b) //?
let spliceFirstElemFromArray = sortArray.splice(1) //?
let spliceLastElemFromArray = spliceFirstElemFromArray.splice(0, spliceFirstElemFromArray.length - 1) //?
return spliceLastElemFromArray.reduce((sum, e) => sum + e) //?
}
// sumArray(null) // 0
// sumArray([ ]) // 0
// sumArray([ 3 ]) // 0
// sumArray([ 3, 5 ]) // 0
// sumArray([ 6, 2, 1, 8, 10 ]) // 16
// sumArray([ 0, 1, 6, 10, 10 ]) // 17
// sumArray([ -6, -20, -1, -10, -12 ])// -28
sumArray([ -6, 20, -1, 10, -12 ]) // 3
Как это сделать в одну строчку? Казалось бы просто до точки все везде стереть но не работает :(
что вы сделать хотите? посчитать сумму массива?
const sumArray = (arr) => [...arr] .sort((a, b) => a - b) .slice(1, -1) .reduce((sum, cur) => sum + cur, 0);
у чувака щас случится переизбыток ФП
ладно const sumArray = (arr) => arr.reduce((sum, cur) => sum + cur, 0) - Math.min(...arr) - Math.max(...arr);
Это будет работать?
да вродь должно
Работает. Удивлен что сначала происходит сумма а потом вычет мин и макс. Как?
а в чём проблема? это, кст, получше ещё решение, если что, тут сложность линейная)
Я не понимаю как работает этот код)
математика ты сначала всё складываешь, а потом вычитаешь самое большое и самое маленькое
Обсуждают сегодня