freeCodeCamp/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-javascript/accessing-object-properties-with-bracket-notation.chinese.md

2.5 KiB

id, title, challengeType, videoUrl, forumTopicId, localeTitle
id title challengeType videoUrl forumTopicId localeTitle
56533eb9ac21ba0edf2244c8 Accessing Object Properties with Bracket Notation 1 https://scrimba.com/c/cBvmEHP 16163 通过方括号访问对象属性

Description

第二种访问对象的方式就是中括号操作符([]),如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([])。 当然,如果属性名不包含空格,也可以使用中括号操作符。 这是一个使用中括号操作符([])读取对象属性的例子:
var myObj = {
  "Space Name": "Kirk",
  "More Space": "Spock",
  "NoSpace": "USS Enterprise"
};
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock
myObj["NoSpace"];    // USS Enterprise

提示:属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来。

Instructions

用中括号操作符读取对象testObjan entree属性值和the drink属性值,并分别赋值给entreeValuedrinkValue

Tests

tests:
  - text: <code>entreeValue</code>应该是一个字符串。
    testString: assert(typeof entreeValue === 'string' );
  - text: <code>entreeValue</code>的值应该是<code>"hamburger"</code>。
    testString: assert(entreeValue === 'hamburger' );
  - text: <code>drinkValue</code>应该是一个字符串。
    testString: assert(typeof drinkValue === 'string' );
  - text: <code>drinkValue</code>的值应该是<code>"water"</code>。
    testString: assert(drinkValue === 'water' );
  - text: 你应该使用中括号两次。
    testString: assert(code.match(/testObj\s*?\[('|")[^'"]+\1\]/g).length > 1);

Challenge Seed

// Setup
var testObj = {
  "an entree": "hamburger",
  "my side": "veggies",
  "the drink": "water"
};

// Only change code below this line

var entreeValue = testObj;   // Change this line
var drinkValue = testObj;    // Change this line

After Test

(function(a,b) { return "entreeValue = '" + a + "', drinkValue = '" + b + "'"; })(entreeValue,drinkValue);

Solution

var testObj = {
  "an entree": "hamburger",
  "my side": "veggies",
  "the drink": "water"
};
var entreeValue = testObj["an entree"];
var drinkValue = testObj['the drink'];