2014-10-15 3 views
0

숫자 1, 2, 3이 아닌 값 축구 축구를 얻으려고하고 있지만 지금은 1 2 3을 얻습니다. 내가 잘못하고있는 것을 말해 줄 수 있습니까? 내 json을 제공하고 꼭두각시 코드 ...이 방법 setupSports에 일부 문제 ... 우리는 i가 2, 1 호 얻고이 있지만 방법을 잘하지를 사용하여 축구 농구 쉽게json 검색을위한 밑줄 방법

_.keys(this.offers) 

을 retrievet 수 있습니다 JS 어떤 방법이있다 축구를 얻는 방법 ...지도하는 방법

setupSports: function() { 
    this.offerCategories = _.map(_.keys(this.offers), function(offer) { 
     return { 
      title: offer 
     }; 
    }); 

    this.offerCategories.unshift({ title: SHOW_ALL }); 

    this.setCurrentSports(); 
}, 

json

{ 
    "sports":{ 
     "2":{ 
     "soccer":[ 
      { 
       "soccerDescription":"uiui", 
       "basketballDescription":"uiu", 
       "footballDescription":"hhh" 
      } 
     ] 
     }, 
     "1":{ 
     "basketball":[ 
      { 
       "soccerDescription":"o", 
       "basketballDescription":"i", 
       "footballDescription":"i" 
      } 
     ] 
     }, 
     "6":{ 
     "football":[ 
      { 
       "soccerDescription":"y", 
       "basketballDescription":"h", 
       "footballDescription":"ii" 
      }, 
      { 
       "soccerDescription":"o", 
       "basketballDescription":"o", 
       "footballDescription":"kk" 
      } 
     ] 
     } 
    } 
} 

답변

0

'this'가 범위를 벗어날 수 있습니까? 시도해보십시오.

var that = this; 
this.offerCategories = _.map(_.keys(this.offers), function(offer) { 
    return { 
     title: _.keys(that.offers[offer])[0] 
    }; 
}); 
+0

그냥 놀고있는 것 같아요. 그렇지 않으면 @epascarello가 자리를 잡은 것 같습니다. – frajk

+0

답장을 보내 주셔서 고맙습니다.하지만 다른 곳에서 정의되지 않게되었습니다 ... this place at this.currentOffers = this.offers; 이 메소드에서 setCurrentSports http://jsfiddle.net/bb094yto/1/ –

+0

원본 문제를 해결하는 데 도움이되는 답변을 수락하고 upvote하십시오. 아쉽게도이 문제를 살펴보십시오. – frajk

1

그럼 두 번째 객체의 키를 반복해야합니다.

this.offerCategories = _.map(_.keys(this.offers), function(offer) { 
    return { 
     title: _.keys(this.offers[offer])[0] 
    }; 
}); 
+0

답장을 보내 주셔서 감사합니다.하지만이 erro가 표시됩니다. Uncaught TypeError : 정의되지 않은 'offer'속성을 읽을 수 없습니다. return 문을 사용했습니다 ... http : //를 사용하여 코드를 제공하십시오. jsfiddle.net/bb094yto/ –

+0

답장을 보내 주셔서 감사합니다.하지만 다른 곳에서 정의되지 않게되었습니다 ... this 장소에서 this.currentOffers = this.offers; 이 방법에서는 setCurrentSports http://jsfiddle.net/bb094yto/1/ –

0

JSON 개체에서 데이터를 타겟팅 할 때 원하는 데이터를 특정 경로로 지정해야합니다. 그래서 이것이 JS에 있었고 console.log에이 3 가지를 말하고 싶다고합니다. 당신은 같은 것을 할 것입니다

var soccer = sports[0].2; 
var basketball = sports[0].1; 
var football = sports[0].6; 

console.log (soccer + basketball + football);

+0

그 이유는 무엇입니까? title : _.keys (this.offers [offer]) [0] }; –