Entonces... currentArray=[n1, n2, n3, n4, sum(currentArray), n5, n6] <--psuedocode obv
Entonces, otra forma sería currentArray.push(sum(oldArray)).shuffle(random) <--psuedo
Pensé que esto sería tan fácil como usar Math.max(...array) , como en este ejemplo...
shuffled=[1, 12, 3, 6, 2]
Estaría buscando el 12 aquí, ya que eliminar el 12 daría como resultado una suma (matriz) = 12.
Sin embargo, se volvió confuso y difícil cuando la entrada incluía números positivos y negativos. Como en este ejemplo..
shuffled=[1, -3, -5, 7, 2]
En este caso, la solución sería 1, ya que eliminar el 1 daría como resultado sum(array)=1
ACTUALIZAR
La pregunta tenía una solución bastante simple, pero no obvia, al menos para mí, jaja. Aquí está el código de trabajo actualizado.
Array.prototype.polysplice = function (criteria) { this.splice(this.indexOf(criteria),1) return this } Array.prototype.polysort = function () { return this.sort((a, b) => a - b) } Array.prototype.polysum = function (subject) { return this.reduce((a,b) => a + b, 0) } const solution = shuffled => shuffled.polysplice(shuffled.polysum()/2).polysort()ORIGINAL
Mi código, pero obviamente no es bueno ...
Array.prototype.sliceAll = function (criteria) { return this.filter(e=>e !== criteria) } Array.prototype.polysort = function () { return this.sort((a, b) => a - b) } const solution = shuffled => shuffled.sliceAll(Math.max(...shuffled)).polysort()Para ambos ejemplos, simplemente puede sumar todas las variables y dividir la suma por 2
suma(matriz)/2