Array.prototype.uniq = function() { narr = []; for (let i = 0; i < 0; i++) { if (!narr.include(this[i])) { narr.push(this[i]); } } return narr; } console.log(([1, 2, 2, 3, 3, 3].uniq() => [1, 2, 3]));Estoy tratando de parchear el código anterior, pero recibo:
/home/cameronnc/Documents/app/skeleton/phase_1_arrays.js:11 console.log(([1,2,2,3,3,3].uniq() => [1,2,3])); ^^^^^
SyntaxError: lista de parámetros de función de flecha con formato incorrecto en Object.compileFunction (nodo:vm:352:18) en wrapSafe (nodo:internal/modules/cjs/loader:1033:15) en Module._compile (node:internal/modules/cjs/ loader:1069:27) en Module._extensions..js (node:internal/modules/cjs/loader:1159:10) en Module.load (node:internal/modules/cjs/loader:981:32) en Module. _load (node:internal/modules/cjs/loader:827:12) en Function.executeUserEntryPoint [como runMain] (node:internal/modules/run_main:77:12) en node:internal/main/run_main_module:17:47
Node.js v18.0.0
Hay varios errores en su código. La que desencadena el error es la función de flecha ([1, 2, 2, 3, 3, 3].uniq() => [1, 2, 3]) que no es una función de flecha válida. Lo que quieres es simplemente imprimir el resultado de [1, 2, 2, 3, 3, 3].uniq() .
Array.prototype.uniq = function() { const narr = []; for (let i = 0; i < this.length; i++) { if (!narr.includes(this[i])) { narr.push(this[i]); } } return narr; } console.log([1, 2, 2, 3, 3, 3].uniq()); Además, no es include() sino include( includes() . Además, su bucle se ejecutará exactamente 0 veces desde i = 0 y su condición es i < 0 . Cambie eso a i < this.length .
Por cierto, al usar un Set , podría implementar el mismo comportamiento con una complejidad de O(n) en lugar de O(n²) como su implementación actual.
Array.prototype.uniq = function() { return [...new Set(this)] } console.log([1, 2, 2, 3, 3, 3].uniq());Okey, tienes algunos errores:
narri < 0 . Necesita la longitud de la matriz this.lengthinclude sus includes Array.prototype.uniq = function() { let narr = []; for (let i = 0; i < this.length; i++) { if (!narr.includes(this[i])) { narr.push(this[i]); } } return narr; } console.log([1, 2, 2, 3, 3, 3].uniq());