3.2 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7b7c367417b2b2512b18 | 將鍵值對添加到對象中 | 1 | 301153 | add-key-value-pairs-to-javascript-objects |
--description--
對象(object)本質上是鍵值對(key-value pair)的集合。 或者說,一系列被映射到唯一標識符的數據就是對象;習慣上,唯一標識符叫做屬性(property)或者鍵(key);數據叫做值(value)。 讓我們來看一個簡單的例子:
const tekkenCharacter = {
player: 'Hwoarang',
fightingStyle: 'Tae Kwon Doe',
human: true
};
上面的代碼定義了一個叫做 tekkenCharacter
的“鐵拳”遊戲人物對象。 它有三個屬性,每個屬性都對應一個特定的值。 如果我們想爲它再添加一個叫做 origin
的屬性,可以這樣寫:
tekkenCharacter.origin = 'South Korea';
上面的代碼中,我們使用了點號表示法。 如果我們現在輸出 tekkenCharacter
對象,便可以看到它具有 origin
屬性。 接下來,因爲這個人物在遊戲中有着與衆不同的橘色頭髮, 我們可以通過方括號表示法來爲它添加這個屬性,像這樣:
tekkenCharacter['hair color'] = 'dyed orange';
如果要設置的屬性中存在空格,或者要設置的屬性是一個變量,那我們必須使用方括號表示法(bracket notation)來爲對象添加屬性。 在上面的代碼中,我們把屬性(hair color)放到引號裏,以此來表示整個字符串都是需要設置的屬性。 如果我們不加上引號,那麼中括號裏的內容會被當作一個變量來解析,這個變量對應的值就會作爲要設置的屬性, 請看這段代碼:
const eyes = 'eye color';
tekkenCharacter[eyes] = 'brown';
執行以上所有示例代碼後,對象會變成這樣:
{
player: 'Hwoarang',
fightingStyle: 'Tae Kwon Doe',
human: true,
origin: 'South Korea',
'hair color': 'dyed orange',
'eye color': 'brown'
};
--instructions--
我們已經爲你創建了包含三個項目的 foods
對象。 請使用上述任意語法,來爲 foods 對象添加如下三個鍵值對:bananas
屬性,值爲 13
;grapes
屬性,值爲 35
;strawberries
屬性,值爲 27
。
--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
);
--seed--
--seed-contents--
let foods = {
apples: 25,
oranges: 32,
plums: 28
};
// Only change code below this line
// Only change code above this line
console.log(foods);
--solutions--
let foods = {
apples: 25,
oranges: 32,
plums: 28
};
foods['bananas'] = 13;
foods['grapes'] = 35;
foods['strawberries'] = 27;