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