--- id: 587d7b7c367417b2b2512b18 challengeType: 1 forumTopicId: 301153 localeTitle: 将键值对添加到对象中 --- ## Description
对象(object)本质上是键值对(key-value pair)的集合,或者说,一系列被映射到唯一标识符(叫做属性(property)或者键(key))的数据。让我们来看一个很简单的例子: ```js let FCC_User = { username: 'awesome_coder', followers: 572, points: 1741, completedProjects: 15 }; ``` 上面的代码定义了一个叫做FCC_User的对象,它有 4 个属性,每个属性映射一个特定的值。如果我们想知道FCC_User有多少followers,我们可以这样访问其followers属性: ```js let userData = FCC_User.followers; // userData 等于 572 ``` 这叫做点符号(dot notation)。我们还可以用方括号符号来访问对象中的属性: ```js let userData = FCC_User['followers']; // userData 等于 572 ``` 注意,在用方括号符号时,我们在括号里写的是字符串followers(用引号括起)。方括号符号让我们能用一个变量作为属性名来访问对象的属性(请记住)。若我们在方括号中不写引号而直接写followers,JavaScript 引擎会将其看作一个变量,并抛出一个ReferenceError: followers is not defined的错误。
## Instructions
用这样的语法,我们还可以向对象中新增键值对。我们已经创建了一个有 3 个属性的foods对象,请为其新增 3 项:值为13bananas属性、值为35grapes属性和值为27strawberries属性。
## Tests
```yml tests: - text: foods应该是一个对象。 testString: assert(typeof foods === 'object'); - text: foods应该有一个值为13"bananas"属性。 testString: assert(foods.bananas === 13); - text: foods应该有一个值为35"grapes"属性。 testString: assert(foods.grapes === 35); - text: foods应该有一个值为27"strawberries"属性。 testString: assert(foods.strawberries === 27); - text: 你应该用点符号或者方括号符号来设置对象的属性。 testString: assert(code.search(/bananas:/) === -1 && code.search(/grapes:/) === -1 && code.search(/strawberries:/) === -1); ```
## Challenge Seed
```js let foods = { apples: 25, oranges: 32, plums: 28 }; // change code below this line // change code above this line console.log(foods); ```
## Solution
```js let foods = { apples: 25, oranges: 32, plums: 28 }; // change code below this line foods['bananas'] = 13; foods['grapes'] = 35; foods['strawberries'] = 27; // change code above this line ```