2021-02-06 04:42:36 +00:00
---
id: 56bbb991ad1ed5201cd392d0
2021-03-09 08:51:59 -07:00
title: Construye objetos en JavaScript
2021-02-06 04:42:36 +00:00
challengeType: 1
videoUrl: 'https://scrimba.com/c/cWGkbtd'
forumTopicId: 16769
dashedName: build-javascript-objects
---
# --description--
2021-03-09 08:51:59 -07:00
Es posible que hayas escuchado el término objeto (`object` ) antes.
2021-02-06 04:42:36 +00:00
2021-03-09 08:51:59 -07:00
Los objetos son similares a los arreglos (`arrays` ), excepto que en lugar de usar índices para acceder y modificar sus datos, accedes a los datos en objetos a través de propiedades (`properties` ).
2021-02-06 04:42:36 +00:00
2021-03-09 08:51:59 -07:00
Los objetos son útiles para almacenar datos de forma estructurada y pueden representar objetos del mundo real, como un gato.
2021-02-06 04:42:36 +00:00
2021-03-09 08:51:59 -07:00
Por ejemplo, aquí hay un objeto de gato:
2021-02-06 04:42:36 +00:00
```js
2021-10-27 15:10:57 +00:00
const cat = {
2021-02-06 04:42:36 +00:00
"name": "Whiskers",
"legs": 4,
"tails": 1,
"enemies": ["Water", "Dogs"]
};
```
2021-09-21 08:09:14 -07:00
En este ejemplo, todas las propiedades se almacenan como cadenas, como `name` , `legs` y `tails` . Sin embargo, también puedes utilizar números como propiedades. Incluso puedes omitir las comillas para las propiedades de cadenas de una sola palabra, de la siguiente manera:
2021-02-06 04:42:36 +00:00
```js
2021-10-27 15:10:57 +00:00
const anotherObject = {
2021-02-06 04:42:36 +00:00
make: "Ford",
5: "five",
"model": "focus"
};
```
2021-03-09 08:51:59 -07:00
Sin embargo, si tu objeto tiene propiedades que no son cadenas, JavaScript las convertirá automáticamente en cadenas.
2021-02-06 04:42:36 +00:00
# --instructions--
2021-03-09 08:51:59 -07:00
Crea un objeto que represente a un perro llamado `myDog` que contenga las propiedades `name` (una cadena), `legs` , `tails` y `friends` .
2021-02-06 04:42:36 +00:00
2021-03-09 08:51:59 -07:00
Puedes establecer estas propiedades del objeto a los valores que quieras, siempre y cuando `name` sea una cadena, `legs` y `tails` sean números, y `friends` sea un arreglo.
2021-02-06 04:42:36 +00:00
# --hints--
2021-03-09 08:51:59 -07:00
`myDog` debe contener la propiedad `name` y debe ser una cadena (`string` ).
2021-02-06 04:42:36 +00:00
```js
assert(
(function (z) {
if (
z.hasOwnProperty('name') & &
z.name !== undefined & &
typeof z.name === 'string'
) {
return true;
} else {
return false;
}
})(myDog)
);
```
2021-03-09 08:51:59 -07:00
`myDog` debe contener la propiedad `legs` y debe ser un número (`number` ).
2021-02-06 04:42:36 +00:00
```js
assert(
(function (z) {
if (
z.hasOwnProperty('legs') & &
z.legs !== undefined & &
typeof z.legs === 'number'
) {
return true;
} else {
return false;
}
})(myDog)
);
```
2021-03-09 08:51:59 -07:00
`myDog` debe contener la propiedad `tails` y debe ser un número (`number` ).
2021-02-06 04:42:36 +00:00
```js
assert(
(function (z) {
if (
z.hasOwnProperty('tails') & &
z.tails !== undefined & &
typeof z.tails === 'number'
) {
return true;
} else {
return false;
}
})(myDog)
);
```
2021-03-09 08:51:59 -07:00
`myDog` debe contener la propiedad `friends` y debe ser un arreglo (`array` ).
2021-02-06 04:42:36 +00:00
```js
assert(
(function (z) {
if (
z.hasOwnProperty('friends') & &
z.friends !== undefined & &
Array.isArray(z.friends)
) {
return true;
} else {
return false;
}
})(myDog)
);
```
2021-03-09 08:51:59 -07:00
`myDog` sólo debe contener todas las propiedades dadas.
2021-02-06 04:42:36 +00:00
```js
assert(
(function (z) {
return Object.keys(z).length === 4;
})(myDog)
);
```
# --seed--
## --after-user-code--
```js
(function(z){return z;})(myDog);
```
## --seed-contents--
```js
2021-10-27 15:10:57 +00:00
const myDog = {
// Only change code below this line
2021-02-06 04:42:36 +00:00
2021-10-27 15:10:57 +00:00
// Only change code above this line
2021-02-06 04:42:36 +00:00
};
```
# --solutions--
```js
2021-10-27 15:10:57 +00:00
const myDog = {
2021-02-06 04:42:36 +00:00
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"]
};
```