DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js馃拪| #53: Explica este c贸digo JavaScript

Explica este c贸digo JavaScript

const getList = ([x, ...y]) => [x, y]
const getUser = user => { name: user.name, age: user.age }

const list = [1, 2, 3, 4]
const user = { name: "Lydia", age: 21 }

console.log(getList(list))
console.log(getUser(user))
Enter fullscreen mode Exit fullscreen mode
  • A: [1, [2, 3, 4]] y SyntaxError
  • B: [1, [2, 3, 4]] y { name: "Lydia", age: 21 }
  • C: [1, 2, 3, 4] y { name: "Lydia", age: 21 }
  • D: SyntaxError y { name: "Lydia", age: 21 }

Respuesta en el primer comentario.


Discussion (1)

Collapse
duxtech profile image
Cristian Fernando Author • Edited on

Respuesta:
A: [1, [2, 3, 4]] y SyntaxError

  • En la funci贸n getList:
    Tenemos una desestructuraci贸n de arreglos en la lista de par谩metros de la funci贸n y adem谩s y es un par谩metro de tipo REST.
    Por ende, al pasar el argumento list, x ser谩 igual al primer elemento del arreglo, 贸sea, 1. y como es de tipo REST ser谩 un arreglo con todos los elementos restantes de list, 贸sea, [2, 3, 4].
    La funci贸n regresa un nuevo arreglo [x, y], entonces tendr铆amos un arreglo anidado y como resultado [1, [2, 3, 4]]

  • En la funci贸n getUser:
    Recibe un 煤nico par谩metro user que es un objeto y luego lo regresa.
    Las funciones de tipo flecha tiene la caracter铆stica denominada return impl铆cito con esto se logra escribir funciones m谩s compactas y de una sola l铆nea, pero cuando intentamos usar un return impl铆cito para devolver un objeto es obligatorio usar par茅ntesis para envolver al objeto en cuesti贸n, sino hacemos esto el interprete nos arrojar谩 un SyntaxError.

Para que el return impl铆cito tenga sentido tendr铆amos que usar par茅ntesis para envolver el objeto:

const getUser = user => ({ name: user.name, age: user.age })
const user = { name: "Lydia", age: 21 }
console.log(getUser(user)); // {name: "Lydia", age: 21}
Enter fullscreen mode Exit fullscreen mode