2017-01-12 9 views
-1

配列を呼び出すが、それでも失敗する。 は、ここに私のJSjavascriptから配列を呼び出す方法は?

var dataLayer = 
[ 
    { 
     "id" : "993932", 
     "name" : "Foo Bar", 
     "total_price" : "867252", 
     "Recommended" : 
     [ 
      { 
       "hotel_name" : "Four Season", 
       "tripadvisor_ratings" : "5.0" 
      }, 
      { 
       "hotel_name" : "Amaris Hotel", 
       "tripadvisor_ratings" : "5.0" 
      } 
     ]; 

var a = "<div>"+ dataLayer.hotel_name +"</div>" 

であるか、結果は未定義あるhttps://jsfiddle.net/dedi_wibisono17/7fnzofg1/1/

で確認することができます。誰でも私を助ける? はここ

+1

あなた 'dataLayer'配列が有効ではありません。あなたは中かっこ/括弧をつけていません。これらを追加すると、たとえば次のことができます。 'dataLayer [0] .Recommended [0] .hotel_name' –

+0

私はあなたのコードインデントを"修正 "しました。今あなた自身の問題を見ることができます。 – icecub

+0

こんにちは@ececubありがとう、それは動作します。はい私のコードの前に何か間違っています。 –

答えて

3

datalayerがオブジェクトの配列で、キーRecommendedはそうあなたが最初のインデックスの要素を選択する必要があり、それらにアクセスするには、オブジェクトの配列であるありがとう。

dataLayer[0]

{ 
     "id" : "993932", 
     "name" : "Foo Bar", 
     "total_price" : "867252", 
     "Recommended" : [ 
     { 
      "hotel_name" : "Four Season", 
      "tripadvisor_ratings" : "5.0" 
     }, 
     { 
      "hotel_name" : "Amaris Hotel", 
      "tripadvisor_ratings" : "5.0" 
     } 
     ] 
    } 
その後、

もそう

[ 
    { 
     "hotel_name" : "Four Season", 
     "tripadvisor_ratings" : "5.0" 
    }, 
    { 
     "hotel_name" : "Amaris Hotel", 
     "tripadvisor_ratings" : "5.0" 
    } 
] 

オブジェクトの配列を持っているキーRecommendedは、必要にあなたのケースでは唯一のものです、あなたの配列の最初のオブジェクトを取得しますインデックスを使用してアクセスします。

dataLayer[0].Recommended[0]あなたはforEachの

dataLayer[0].Recommended.forEach(function(obj){ 
    console.log(obj.hotel_name); 
    }); 

var dataLayer = [ 
 
{ 
 
    "id" : "993932", 
 
    "name" : "Foo Bar", 
 
    "total_price" : "867252", 
 
    "Recommended" : [ 
 
    { 
 
     "hotel_name" : "Four Season", 
 
     "tripadvisor_ratings" : "5.0" 
 
    }, 
 
    { 
 
     "hotel_name" : "Amaris Hotel", 
 
     "tripadvisor_ratings" : "5.0" 
 
    } 
 
    ] 
 
} 
 
]; 
 

 
dataLayer[0].Recommended.forEach(function(obj){ 
 
    console.log(obj.hotel_name); 
 
});
を使用することができます推奨キー配列内のすべてのオブジェクトを反復処理するには、キー hotel_name

を選択するために

{ 
    "hotel_name" : "Four Season", 
    "tripadvisor_ratings" : "5.0" 
} 

dataLayer[0].Recommended[0].hotel_name最初のオブジェクトを選択します

+0

ありがとう、ありがとう、すべてのホテル名を呼び出す方法?四季だけでなく、 –

+0

オブジェクトの配列を繰り返し処理する必要があります。 –

+0

更新されたコード –

0

var dataLayer = [ 
 
{ 
 
    "id" : "993932", 
 
    "name" : "Foo Bar", 
 
    "total_price" : "867252", 
 
    "Recommended" : [ 
 
    { 
 
     "hotel_name" : "Four Season", 
 
     "tripadvisor_ratings" : "5.0" 
 
    }, 
 
    { 
 
     "hotel_name" : "Amaris Hotel", 
 
     "tripadvisor_ratings" : "5.0" 
 
    } 
 
    ] 
 
} 
 
]; 
 
alert(dataLayer[0].Recommended[0].hotel_name); 
 
alert(dataLayer[0].Recommended[1].hotel_name);

関連する問題