2017-01-29 9 views
0

オブジェクトの配列をループしようとしています。各オブジェクトには、毎日1つのオブジェクトが含まれています。私は配列がObject.key(forEach配列インデックス)をキャッチして見てみると、キーの下にすべての値を記録します。オブジェクトを含むオブジェクトの配列をレンダリングします。

DOPeration:[ 

     { 
      'Monday':{ 
      Closed:'Closed Today' 
      } 
     }, 
     { Tuesday:{ 
      Closed:'Closed Today' 
      } 
     }, 
     { Wednesday:{ 
      Closed:'Closed Today' 
      } 
     }, 
     { Thursday:{ 
      Closed:'Closed Today' 
      } 
     }, 
     { Friday:{ 
      Closed:'Closed Today' 
      } 
     }, 
     { Saturday:{ 
      Closed:'Closed Today' 
      } 
     }, 
     { Sunday:{ 
      Closed:'Closed Today' 
      } 
     } 
     ] 
export default class displayDay extends React.Component{ 
    render(){ 
    const thing = this.props.dates.map(function(sec,index) { 
     var keyVal = sec[Object.keys(sec)] 


     return(
     <div key = {index}> 
      <h9>{Object.keys(sec)[0]}</h9> 
     <div> 
     { 

      for (var variable in keyVal) { 
      return(
       <p>{variable}:{keyVal[variable]}</p> 
      ) 
      } 

     }</div> 
     </div> 
     ) 


    }) 
    return(
    <div className='container'> 
     <div className='box'> 
     {thing} 
     </div> 

    </div> 
    ) 
    } 
} 

のこの種働いだけforinループが唯一あなたがKEYVALを定義したときは、実際のキーを引くのを忘れて

// const thing = this.props.dates.map(function(sec,index) { 
// var keyVal = sec[Object.keys(sec)] 
// for (var variable in (keyVal)) { 
//  console.log('keyVal',keyVal); 
// 
//  return(
//  <div key = {index}> 
//  <h9>{Object.keys(sec)[0]}</h9> 
//  <p>{variable}:{keyVal[variable]}</p> 
//  </div> 
// ) 
// } 
// 
// }) 
+0

を試しCONST事= this.props.dates.map(関数(秒、インデックス){// VAR KEYVAL =秒[Object.keys(秒)] // (KEYVAL)における変数){// はconsole.log( 'KEYVAL'、KEYVAL); // //リターン( //

// {Object.keys(sec)[0]} //

{variable}:{keyVal[variable]}

//
//) //} // // }) – GoyaKing

答えて

0

つの値をキャッチして、毎日の中に一つの値をログに記録:

var keyVal = sec[Object.keys(sec)[0]] 

[0]がないと、配列をオブジェクトキーとして使用しようとしています。


編集

そのデータは、UIをレンダリングするための素晴らしいではありません。そのデータをより便利なものに変換する関数を作成して、レンダリングメソッドをもっときれいに保つことができます。書式設定機能の場合はCheck this jsbinです。 es6を使用している場合、その機能はより簡潔になります。

+0

そうだけど、それは私の問題を解決しない。それでも1つしかロギングしない。私はforinループのための予期しないトークンを取得します。何か案は? – GoyaKing

+0

編集された回答は、別の解決方法を提供します。レンダリング機能で使用する前に、データをより便利な形式に変換してみてください。 – shadymoses

0

奇妙なコード:データ内の各オブジェクトのセクションを取得しようとしていますか? (VARに対する //この

<div> 
    {this.props.dates.map((item, idx) => { 
     const day = Object.keys(item)[0]; 
     return <div key={idx}> 
      <h4>{day}</h4> 
      <p>{item[day].Closed}</p> 
     </div> 
    })} 
</div> 
関連する問題