--- id: 56bbb991ad1ed5201cd392d0 title: Build JavaScript Objects challengeType: 1 videoUrl: '' localeTitle: Construa objetos JavaScript --- ## Description
Você pode ter ouvido o termo object antes. Os objetos são semelhantes aos arrays , exceto que, em vez de usar índices para acessar e modificar seus dados, você acessa os dados em objetos por meio do que são chamados de properties . Os objetos são úteis para armazenar dados de maneira estruturada e podem representar objetos do mundo real, como um gato. Aqui está um objeto cat de amostra:
var cat = {
"nome": "Bigodes",
"pernas": 4,
"coroa": 1,
"inimigos": ["Água", "Cães"]
};
Neste exemplo, todas as propriedades são armazenadas como strings, como - "name" , "legs" e "tails" . No entanto, você também pode usar números como propriedades. Você pode até mesmo omitir as aspas para propriedades de string de palavra única, da seguinte maneira:
var anotherObject = {
make: "Ford",
5: "cinco",
"modelo": "foco"
};
No entanto, se o seu objeto tiver alguma propriedade que não seja de string, o JavaScript será automaticamente convertido em typecast como string.
## Instructions
Crie um objeto que represente um cão chamado myDog que contenha as propriedades "name" (uma string), "legs" , "tails" e "friends" . Você pode definir essas propriedades de objeto para quaisquer valores desejados, desde que "name" seja uma cadeia, "legs" e "tails" sejam números e "friends" seja uma matriz.
## Tests
```yml tests: - text: myDog deve conter o name da propriedade e deve ser uma string . testString: 'assert((function(z){if(z.hasOwnProperty("name") && z.name !== undefined && typeof z.name === "string"){return true;}else{return false;}})(myDog), "myDog should contain the property name and it should be a string.");' - text: myDog deve conter as legs da propriedade e deve ser um number . testString: 'assert((function(z){if(z.hasOwnProperty("legs") && z.legs !== undefined && typeof z.legs === "number"){return true;}else{return false;}})(myDog), "myDog should contain the property legs and it should be a number.");' - text: myDog deve conter as tails da propriedade e deve ser um number . testString: 'assert((function(z){if(z.hasOwnProperty("tails") && z.tails !== undefined && typeof z.tails === "number"){return true;}else{return false;}})(myDog), "myDog should contain the property tails and it should be a number.");' - text: myDog deve conter os friends da propriedade e deve ser um array . testString: 'assert((function(z){if(z.hasOwnProperty("friends") && z.friends !== undefined && Array.isArray(z.friends)){return true;}else{return false;}})(myDog), "myDog should contain the property friends and it should be an array.");' - text: myDog deve conter apenas todas as propriedades dadas. testString: 'assert((function(z){return Object.keys(z).length === 4;})(myDog), "myDog should only contain all the given properties.");' ```
## Challenge Seed
```js // Example var ourDog = { "name": "Camper", "legs": 4, "tails": 1, "friends": ["everything!"] }; // Only change code below this line. var myDog = { }; ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```