76 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| id: 56533eb9ac21ba0edf2244c8
 | ||
| title: Accessing Object Properties with Bracket Notation
 | ||
| challengeType: 1
 | ||
| videoUrl: ''
 | ||
| localeTitle: 使用括号表示法访问对象属性
 | ||
| ---
 | ||
| 
 | ||
| ## Description
 | ||
| <section id="description">访问对象属性的第二种方法是括号表示法( <code>[]</code> )。如果您尝试访问的对象的属性在其名称中有空格,则需要使用括号表示法。但是,您仍然可以在没有空格的对象属性上使用括号表示法。以下是使用括号表示法读取对象属性的示例: <blockquote> var myObj = { <br> “太空名称”:“柯克”, <br> “更多空间”:“Spock”, <br> “NoSpace”:“USS Enterprise” <br> }; <br> myObj [“空间名称”]; //柯克<br> myObj ['更多空间']; // Spock <br> MyObj中[ “无空间”]; // USS Enterprise </blockquote>请注意,其中包含空格的属性名称必须使用引号(单引号或双引号)。 </section>
 | ||
| 
 | ||
| ## Instructions
 | ||
| <section id="instructions">使用括号表示法<code>testObj</code>属性<code>"an entree"</code> <code>testObj</code> <code>"an entree"</code>和<code>"the drink"</code>的<code>testObj</code> ,并分别将它们分配给<code>entreeValue</code>和<code>drinkValue</code> 。 </section>
 | ||
| 
 | ||
| ## Tests
 | ||
| <section id='tests'>
 | ||
| 
 | ||
| ```yml
 | ||
| tests:
 | ||
|   - text: <code>entreeValue</code>应该是一个字符串
 | ||
|     testString: 'assert(typeof entreeValue === "string" , "<code>entreeValue</code> should be a string");'
 | ||
|   - text: <code>entreeValue</code>的值应该是<code>"hamburger"</code>
 | ||
|     testString: 'assert(entreeValue === "hamburger" , "The value of <code>entreeValue</code> should be <code>"hamburger"</code>");'
 | ||
|   - text: <code>drinkValue</code>应该是一个字符串
 | ||
|     testString: 'assert(typeof drinkValue === "string" , "<code>drinkValue</code> should be a string");'
 | ||
|   - text: <code>drinkValue</code>的值应该是<code>"water"</code>
 | ||
|     testString: 'assert(drinkValue === "water" , "The value of <code>drinkValue</code> should be <code>"water"</code>");'
 | ||
|   - text: 您应该使用括号表示法两次
 | ||
|     testString: 'assert(code.match(/testObj\s*?\[("|")[^""]+\1\]/g).length > 1, "You should use bracket notation twice");'
 | ||
| 
 | ||
| ```
 | ||
| 
 | ||
| </section>
 | ||
| 
 | ||
| ## Challenge Seed
 | ||
| <section id='challengeSeed'>
 | ||
| 
 | ||
| <div id='js-seed'>
 | ||
| 
 | ||
| ```js
 | ||
| // 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
 | ||
| 
 | ||
| ```
 | ||
| 
 | ||
| </div>
 | ||
| 
 | ||
| 
 | ||
| ### After Test
 | ||
| <div id='js-teardown'>
 | ||
| 
 | ||
| ```js
 | ||
| console.info('after the test');
 | ||
| ```
 | ||
| 
 | ||
| </div>
 | ||
| 
 | ||
| </section>
 | ||
| 
 | ||
| ## Solution
 | ||
| <section id='solution'>
 | ||
| 
 | ||
| ```js
 | ||
| // solution required
 | ||
| ```
 | ||
| </section>
 |