Estoy practicando en Code Wars y actualmente estoy atascado en una pregunta de kyu 8, todas las pruebas parecen pasar excepto la última. Agregaré mi código y las pruebas a continuación más el resultado que obtengo a continuación.
function sumArray(array) { if (array == null || array.length <= 2) { return 0 } else { let largestInt = Math.max.apply(null, array) let smallestInt = Math.min.apply(null, array) let indexSmallest = array.indexOf(largestInt) let indexLargest = array.indexOf(smallestInt) array.splice(indexSmallest, 1) array.splice(indexLargest, 1) let sum = 0 for (let i = 0; i < array.length; i++) { sum += array[I] } return sum } }Los exámenes:
const { assert } = require("chai"); it("example tests", () => { assert.strictEqual(sumArray(null), 0); assert.strictEqual(sumArray([]), 0); assert.strictEqual(sumArray([3]), 0); assert.strictEqual(sumArray([3, 5]), 0); assert.strictEqual(sumArray([6, 2, 1, 8, 10]), 16); assert.strictEqual(sumArray([0, 1, 6, 10, 10]), 17); assert.strictEqual(sumArray([-6, -20, -1, -10, -12]), -28); assert.strictEqual(sumArray([-6, 20, -1, 10, -13]), 3); });La salida:
Resultados de la prueba: pruebas de ejemplo esperadas -10 a igual a 3
function total(array) { // always assure at least an empty array. array = Array.from(array ?? []); // sort array values ascending. array.sort((a, b) => a - b); array.pop(); // remove last/higest value. array.shift(); // remove first/lowest value. // for any to be reduced/summed-up (empty) array // the initial value of zero always assures the // minimum expected result of zero. return array .reduce((total, value) => total + value, 0); } const testEntries = [ [ null, 0 ], [ [ ], 0 ], [ [ 3 ], 0 ], [ [ 3, 5 ], 0 ], [ [ 6, 2, 1, 8, 10 ], 16 ], [ [ 0, 1, 6, 10, 10 ], 17 ], [ [ -6, -20, -1, -10, -12 ], -28 ], [ [ -6, 20, -1, 10, -13 ], 3 ], ]; console.log( testEntries .map(([value, result]) => `(total([${ value }]) === ${ result }) ... ${ total(value) === result }` ) ); .as-console-wrapper { min-height: 100%!important; top: 0; }