My Coding Quiz #24

in #hive-196387last year

My Coding Quiz #24 👨‍💻🛠️🧩

Welcome to the new installment of my series of Coding Quizzes, in which you will be able to test your knowledge and skills about programming and software development in a simple and fun way. If you want to learn more about it visit my blog here on Hive and the first post where I introduced it.

Without further ado, here's the riddle...




Quiz
By @eniolw


What's your choice?

Solution to the previous quiz: Between lines 1 and 5 we simply declare and initialize a data object which in turn has a nested a object. You probably know that the format used for the declaration is very typical and considered a prettifier, so it is not invalid syntax.

Line 6 creates a new object called newD from the data object using the spread operator ..., which is used to easily create copies. However, the key is to understand that, as in other languages such as Python, this copy is shallow, so the nested objects are not copied as new, but are references to the original object.

This explains why when making the modification at line 7 to the nested content of data, the nested content of newD is also modified, since the content of both is the same subobject.

So, don't forget this fundamental concept of the shallow copy created by the spread operator. If you know how to solve this "problem" (which it is not, it is a feature of the language), then let us know in the comments.


If you want to blog about computer science and programming content, I invite you to join Hive and participate in its communities, such as STEM-social, Develop Spanish, Programming & Dev and others.


Mi Quiz de Programación #24 👨‍💻🛠️🧩

Bienvenido a mi nueva serie de Quizzes de Programación, en la cual podrás poner a prueba tus conocimientos y habilidades sobre programación y desarrollo de software de una manera sencilla y divertida. Si quieres aprender más sobre ella visita mi blog aquí en Hive y el primer post donde la presenté.

Sin más preámbulos, he aquí el acertijo...




Quiz
Por @eniolw


¿Cuál es tu elección?

Solución al quiz anterior: false. Entre las líneas 1 y 5 simplemente declaramos e inicializamos un objeto data que a su vez posee un objeto a anidado. Probablemente sabes que el formato usado para la declaración es muy típico y considerado un prettifier, por lo que no es una sintaxis inválida.

En la línea 6 creamos un nuevo objeto newD a partir del objeto data usando el operador spread ..., que sirve para crear copias fácilmente. Sin embargo, la clave es entender que, como pasa en otros lenguajes como Python, esta copia es superficial, por lo que los objetos anidados no son copiados como nuevos, sino que son referencias al objeto original.

Esto explica porqué al hacer la modificación en la línea 7 al contenido anidado de data, el contenido anidado de newD también se ve modificado, pues el contenido de ambos es el mismo subobjeto.

Así pues, no olvides este concepto fundamental de la copia superficial creada por el operador spread. Si sabes cómo solucionar este "problema" (que no lo es, pues es una caraterística del lenguaje), entonces hazlo saber en los comentarios.


Si quieres bloguear sobre contenido informático y de programación, te invito a unirte a Hive y participar en sus comunidades, tales como STEM-social, Develop Spanish, Programming & Dev y otras.

Sort:  

Es genial ver quizzes como este que nos ayudan a mejorar nuestras habilidades de codificación y a pensar de forma innovadora. Me tomó tiempo entender el operador condicional ternario, pienso que la respuesta es 1. Espero recibir más contenidos tuyos en el futuro. Éxitos en todo.

Gracias por apreciar el quiz y me alegra que te entregengas con él!

Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support. 
 

creo que la respuesta es 1, por lo que entiendo data existe y asigna a v = 1 o por defecto true; entonces v = true && list = true en consola debería mostrar 1

Estás en lo correcto! Veremos la solución muy pronto.