Freecodecamp: λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 객체 속성에 μ•‘μ„ΈμŠ€ν•˜κΈ°κ°€ μ–΄λ ΅μŠ΅λ‹ˆκΉŒ?

에 λ§Œλ“  2016λ…„ 12μ›” 21일  Β·  10μ½”λ©˜νŠΈ  Β·  좜처: freeCodeCamp/freeCodeCamp


도전 이름


λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 개체 속성에 μ•‘μ„ΈμŠ€

문제 μ„€λͺ…


이 도전은 μ €λ₯Ό ν˜Όλž€μŠ€λŸ½κ²Œν•©λ‹ˆλ‹€. 개체 μ•‘μ„ΈμŠ€μ™€ κ΄€λ ¨λœ 이전 λ¬Έμ œλΆ€ν„°. μ•‘μ„ΈμŠ€ν•΄μ•Όν•˜λŠ” 속성에 κ³΅λ°±μ΄μžˆμ„ λ•Œλ§Œ λŒ€κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€κ³  μ½μ—ˆμŠ΅λ‹ˆλ‹€. 이제이 λ„μ „μ—μ„œ 그듀은 속성에 곡백이 없을 λ•Œ λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•˜κΈ°λ₯Ό μ›ν•©λ‹ˆλ‹€.

help wanted

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@ChrisKissoon λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μ€ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑에 이름이 λ™μ μœΌλ‘œ μˆ˜μ§‘λ˜λŠ” 속성에 μ•‘μ„ΈμŠ€ν•΄μ•Ό ν•  λ•Œ μœ μš©ν•©λ‹ˆλ‹€.
예

var obj = {
  propName : "John"
}

function propPrefix(str) {
  var s = "prop";
  return s + str;
}

var someProp = propPrefix("Name")

console.log(obj[someProp]) // -> "John"

이 κ°œλ…μ΄ λ„ˆλ¬΄ μž₯ν™©ν•˜μ§€ μ•Šμ€ 경우 μ„€λͺ…μ—μ„œ μ„€λͺ… ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  10 λŒ“κΈ€

/ cc @ FreeCodeCamp / μ€‘μž¬μž
지침에 더 μžμ„Έν•œ μ„€λͺ…이 ν•„μš”ν•œ 경우 λˆ„κ΅¬λ“ μ§€ 심사에 도움을 쀄 수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” νŽΈκ²¬μ„ 가지고 μžˆμ„μ§€ λͺ¨λ₯΄μ§€λ§Œ 그듀은 λ‚˜μ—κ²Œ λ˜‘λ°”λ‘œ 보인닀.

@ChrisKissoon λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μ€ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑에 이름이 λ™μ μœΌλ‘œ μˆ˜μ§‘λ˜λŠ” 속성에 μ•‘μ„ΈμŠ€ν•΄μ•Ό ν•  λ•Œ μœ μš©ν•©λ‹ˆλ‹€.
예

var obj = {
  propName : "John"
}

function propPrefix(str) {
  var s = "prop";
  return s + str;
}

var someProp = propPrefix("Name")

console.log(obj[someProp]) // -> "John"

이 κ°œλ…μ΄ λ„ˆλ¬΄ μž₯ν™©ν•˜μ§€ μ•Šμ€ 경우 μ„€λͺ…μ—μ„œ μ„€λͺ… ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@ Emt-Antμ—κ²Œ κ°μ‚¬ν•©λ‹ˆλ‹€. 더 μžμ„Έν•œ μ„€λͺ…을 μœ„ν•΄ 지침을 μ—…λ°μ΄νŠΈν•΄μ•Όν•©λ‹ˆκΉŒ? λ‹Ήμ‹ μ˜ 의견?

@raisedadead @ Em-Ant,
λ‚˜λŠ” ν˜Όλž€μ„ 이해할 수 있으며, 더 λ§Žμ€ μ„€λͺ…μœΌλ‘œ μ—…λ°μ΄νŠΈν•˜λŠ” imhoλŠ” 쒋은 μƒκ°μ²˜λŸΌ λ“€λ¦½λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같은 μ˜ˆκ°€μžˆλŠ” μ‹ κ·œ μ‚¬μš©μž :

var someProp = "propName";
var myObj = {
  propName: "Some Value"
}
myObj[someProp]; // "Some Value"

"μš°λ¦¬κ°€ λ˜‘κ°™μ€ μΌμ„ν•˜κ³  있기 λ•Œλ¬Έμ— μ™œ myObj.propNameμ„ν•˜μ§€ μ•ŠλŠ”κ°€?"라고 μƒκ°ν•˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€.

λ‹€μ‹œ 두 번째 예 :

var myDog = "Hunter";
var dogs = {
  Fido: "Mutt",
  Hunter: "Doberman",
  Snoopie: "Beagle"
}
var breed = dogs[myDog];
console.log(breed);// "Doberman"

같은 μΌμ„ν•©λ‹ˆλ‹€. λ³€μˆ˜μ— 값을 첨뢀 ν• λΏμž…λ‹ˆλ‹€. μ™œ μš°λ¦¬λŠ” λ³€μˆ˜κ°€ ν•„μš”ν•©λ‹ˆκΉŒ ?? @ Em-Antκ°€ λ§ν•œ κ²ƒμ²˜λŸΌ λ³€μˆ˜κ°€ λ™μ μœΌλ‘œ λ³€κ²½λ˜λŠ” 예λ₯Ό μΆ”κ°€ν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ³€μˆ˜λ₯Ό λ¬Έμžμ—΄κ³Ό λ™μΌν•˜κ²Œ μ„€μ •ν•˜κ³  λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°μ—λŠ” μ˜λ―Έκ°€ μ—†κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 점 ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•˜λŠ” 것이 더 μ‹€μš©μ μž…λ‹ˆλ‹€. 점 ν‘œκΈ°λ²• λŒ€μ‹  λ³€μˆ˜λ₯Ό μ²˜μŒμ— μ‚¬μš©ν•΄μ•Όν•˜λŠ” 이유λ₯Ό μ„€λͺ…ν•˜μ§€ μ•ŠλŠ” ν•œμ΄ λ¬Έμ œλŠ” μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ μ €μ˜ νˆ¬ν‘œλŠ” λ‹€λ₯Έ 예λ₯Ό μΆ”κ°€ν•˜κ³  λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 이유λ₯Ό λͺ…ν™•νžˆν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

@IsaacAbrahamson κ°μ‚¬ν•©λ‹ˆλ‹€.

κΈ°μ—¬μžλŠ” Updating Object Properties 와 ν•¨κ»˜μ΄ μ±Œλ¦°μ§€λ₯Ό λ¦¬νŒ©ν† λ§ν•΄μ•Όν•©λ‹ˆλ‹€. ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Όν•˜κΈ° 전에 μ œμ•ˆ 된 λ¦¬νŒ©ν† λ§κ³Ό ν•¨κ»˜ μ•„λž˜μ— μ˜κ²¬μ„ λ‚¨κ²¨μ£Όμ„Έμš”.

/ cc @erictleung 생각?

λ˜ν•œ @systimotic ' https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12125#issuecomment -269246606을 ν™•μΈν•˜μ‹­μ‹œμ˜€.

μ•ˆλ…•ν•˜μ„Έμš” @raisedadead ,
객체 ν‘œκΈ°λ²•κ³Ό κ΄€λ ¨λœ λͺ¨λ“  문제λ₯Ό 읽음으둜써 μ΄ˆλ³΄μžμ—κ²ŒλŠ” λͺ…ν™•ν•˜μ§€ μ•Šλ‹€λŠ” 것을 μ΄ν•΄ν–ˆμŠ΅λ‹ˆλ‹€. 그듀은 λ‚˜μ—κ²Œ λ˜‘λ°”λ‘œ λ³΄μ˜€λ‹€. 더 κ°„λ‹¨ν•˜κ²Œν•˜λ €λ©΄ μ΄λŸ¬ν•œ 변경을 μˆ˜ν–‰ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

객체 μ ‘κ·Ό : (https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12141)

var currency = {
   USA  : "dollar",
   London : "euro",
   India : "rupee",
}
function getCurrency(country){
 return country +" currency is "+currency[country] +" ";
}
getCurrency("USA") // "USA currency is dollar" 

개체 μ—…λ°μ΄νŠΈμ— λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€. ν‹€λ¦° 점 있으면 지적 ν•΄μ£Όμ„Έμš”.
심지어 λ‚˜λŠ” Nested Objects 도전을 μΆ”κ°€ν•˜λ €κ³  μƒκ°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ°œμ„ μ„ μœ„ν•΄ λ‚΄κ°€ μ–΄λ–»κ²Œ λ„μšΈ 수 μžˆλŠ”μ§€ μ•Œλ €μ£Όμ„Έμš”.

@raisedadead 이 객체 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλŠ”μ§€ λ³΄κ² μŠ΅λ‹ˆλ‹€.

κΈ°μ—¬μžλŠ” Updating Object Properties 와 ν•¨κ»˜μ΄ μ±Œλ¦°μ§€λ₯Ό λ¦¬νŒ©ν† λ§ν•΄μ•Όν•©λ‹ˆλ‹€. ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Όν•˜κΈ° 전에 μ œμ•ˆ 된 λ¦¬νŒ©ν† λ§κ³Ό ν•¨κ»˜ μ•„λž˜μ— μ˜κ²¬μ„ λ‚¨κ²¨μ£Όμ„Έμš”.

λ”°λΌμ„œ 객체에 λŒ€ν•œ 초기 과제 인 "Build JavaScript Objects" 의 경우 μƒ˜ν”Œ κ°μ²΄λŠ” λͺ¨λ“  속성이 λ¬Έμžμ—΄μž…λ‹ˆλ‹€. λ‹€λ₯Έ μœ ν˜•μ˜ 속성을 가진 λ‹€λ₯Έ μƒ˜ν”Œ 객체λ₯Ό μΆ”κ°€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

var sampleObject = {
  property_1: "Green",
  2: "Hal",
  "property_3": "Lantern"
};

이것은 μ’€ 더 ν˜Όλž€ 슀러울 μˆ˜λ„ μžˆμ§€λ§Œ 물체의 κ°€λŠ₯성을 νƒκ΅¬ν•˜λŠ” κ²ƒμ΄λ―€λ‘œ μΊ ν•‘ 객이 μ•½κ°„ μ‘°μ‚¬ν•˜λ„λ‘ μœ λ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ "λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 객체 속성에 μ•‘μ„ΈμŠ€"에 λŒ€ν•œ μ‹œλ“œ μ½”λ“œμ—λŠ” μ†μ„±μœΌλ‘œ μˆ«μžκ°€ μžˆλŠ”λ°, μ΄λŠ” 객체에 λŒ€ν•œ 이전 μ„Έ 가지 κ³Όμ œμ—μ„œ ν‘œμ‹œλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.


μ•‘μ„ΈμŠ€ν•΄μ•Όν•˜λŠ” 속성에 κ³΅λ°±μ΄μžˆμ„ λ•Œλ§Œ λŒ€κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€κ³  μ½μ—ˆμŠ΅λ‹ˆλ‹€.

이 λ¬Έμ œλŠ” λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μ„ λ³€κ²½ν•˜μ—¬ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. " λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μœΌλ‘œ

μ•‘μ„ΈμŠ€ν•˜λ €λŠ” 개체의 속성에 곡백이 있으면 λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같이 λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ•‘μ„ΈμŠ€ν•˜λ €λŠ” 개체의 속성에 곡백이 있으면 λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 곡백없이 속성에 λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

그런 λ‹€μŒ 곡백없이 속성을 κ°€μ§ˆ 수 μžˆμŒμ„ 보여주기 μœ„ν•΄ μƒ˜ν”Œ 객체λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

var myObj = {
  "Space Name": "Kirk",
  "More Space": "Spock",
  "NoSpace": "USS Enterprise"
};
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock
myObj["NoSpace"];    // USS Enterprise

"Accessing Object Properties with Variables"의 경우 , @ Em-Ant의 μ œμ•ˆ 을 μ’‹μ•„ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 첫 번째 예, 즉 제거

var someProp = "propName";
var myObj = {
  propName: "Some Value"
}
myObj[someProp]; // "Some Value"

dogs 개체 예제λ₯Ό 첫 번째 예제둜 μ΄λ™ν•˜κ³ 

var obj = {
  propName : "John"
}

function propPrefix(str) {
  var s = "prop";
  return s + str;
}

var someProp = propPrefix("Name");
console.log(obj[someProp]); // "John"

두 번째 μ˜ˆμž…λ‹ˆλ‹€.

λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•μ΄ 객체λ₯Ό μ‘°μž‘ν•˜λŠ”λ³΄λ‹€ 동적 인 ν˜•νƒœλΌκ³  λ§ν•˜λŠ” 것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ? 숫자둜 μ‹œμž‘ν•˜κ³  속성 μ΄λ¦„μœΌλ‘œ κ³΅λ°±μ΄μžˆλŠ” λ¬Έμžμ—΄ a μ‚¬μš©κ³Ό 같이 λŒ€λΆ€λΆ„μ˜ JavaScript μ„ μ–Έ κ·œμΉ™μ„ λ²—μ–΄λ‚  μˆ˜μžˆλŠ” λ¬Έμžμ—΄μ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ λŒ€κ΄„ν˜Έ μ•ˆμ— λ³€μˆ˜λ₯Ό λ°°μΉ˜ν•˜μ—¬ 속성을 μ¦‰μ„μ—μ„œ λ˜λŠ” 일뢀 λΆ€μž‘μš©μ„ 톡해 ν• λ‹Ή ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ ν”„λ‘œκ·Έλž¨μ— κ°œμ²΄κ°€ 있고 생성 쀑에 ν•„μš”ν•œ 속성이 무엇인지 ν™•μ‹€ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ ν”„λ‘œκ·Έλž¨μ΄ λŸ°νƒ€μž„ 쀑에 ν• λ‹Ή ν•  수 μžˆλ„λ‘ ν—ˆμš©ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰