let p2 = function(arr, index,value) { let array1 = [5,3,6,1,8,5,8,32]; array1 = arr; return [ array1[index] = value, function count() { for(let i=0; i<array1.length; i++) { console.log(array1[i]); } } ] }; console.log(p2(arr, 3,59));En este código, intento imprimir la matriz después de reemplazar el valor, pero obtengo [59,f]. No sé qué f está aquí.
Tienes el siguiente retorno:
return [ array1[index] = value, function count() { for(let i=0; i<array1.length; i++) { console.log(array1[i]); } } ] Entonces, el motor JS devuelve una matriz, donde 59 es de la instrucción array1[index] = value y la f es la función que se encuentra en el primer índice de la matriz devuelta, que es:
function count() { for(let i=0; i<array1.length; i++) { console.log(array1[i]); } } No estoy seguro de cuál es su intención count la función, pero probablemente desee mover la declaración de return por fin para obtener un valor significativo.
[Actualizar]:
No puede devolver 2 valores de una función que no sea generadora, por lo que es mejor devolver un objeto que tenga el resultado deseado y usarlo después de que se complete la llamada a la función:
let arr = [5,3,6,1,8,5,8,32]; let p2 = function(arr, index,value) { let array1 = [...arr]; array1[index] = value; return {value: array1[index], res: arr} }; const { value, res } = p2(arr, 3, 59); console.log(value, res);