--- id: 56bbb991ad1ed5201cd392d0 title: Build JavaScript Objects challengeType: 1 videoUrl: '' localeTitle: 构建JavaScript对象 --- ## Description
您之前可能听说过object这个术语。对象类似于arrays ,除了不使用索引访问和修改数据,您可以通过所谓的properties访问对象中的数据。对象对于以结构化方式存储数据很有用,并且可以表示真实世界对象,如猫。这是一个示例cat对象:
var cat = {
“名字”:“胡须”,
“腿”:4,
“尾巴”:1,
“敌人”:[“水”,“狗”]
};
在此示例中,所有属性都存储为字符串,例如 - "name""legs""tails" 。但是,您也可以使用数字作为属性。您甚至可以省略单字符串属性的引号,如下所示:
var anotherObject = {
制作:“福特”,
5:“五”,
“模特”:“焦点”
};
但是,如果您的对象具有任何非字符串属性,JavaScript将自动将它们作为字符串进行类型转换。
## Instructions
创建一个代表名为myDog的狗的对象,其中包含属性"name" (字符串), "legs""tails""friends" 。您可以将这些对象属性设置为您想要的任何值,因为"name"是一个字符串, "legs""tails"是数字, "friends"是一个数组。
## Tests
```yml tests: - text: myDog应该包含属性name ,它应该是一个string 。 testString: assert((function(z){if(z.hasOwnProperty("name") && z.name !== undefined && typeof z.name === "string"){return true;}else{return false;}})(myDog)); - text: myDog应该包含属性legs ,它应该是一个number 。 testString: assert((function(z){if(z.hasOwnProperty("legs") && z.legs !== undefined && typeof z.legs === "number"){return true;}else{return false;}})(myDog)); - text: myDog应该包含属性tails ,它应该是一个number 。 testString: assert((function(z){if(z.hasOwnProperty("tails") && z.tails !== undefined && typeof z.tails === "number"){return true;}else{return false;}})(myDog)); - text: myDog应该包含属性friends ,它应该是一个array 。 testString: assert((function(z){if(z.hasOwnProperty("friends") && z.friends !== undefined && Array.isArray(z.friends)){return true;}else{return false;}})(myDog)); - text: myDog应该只包含所有给定的属性。 testString: assert((function(z){return Object.keys(z).length === 4;})(myDog)); ```
## 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 ```