2017-03-10 6 views
-2

助けてください。私はこのようなオブジェクトを持っています:このオブジェクトからデータを取得するにはどうすればよいですか?

data: { 
     offersMonday: [ 
       { 
       "name": "name1", 
       "description" "description 1" 
       }, 
       { 
       "name": "name2", 
       "description": "description 2" 
       } 
      ], 
     offersTuesday: [ 
     { 
       "name": "name1", 
       "description" "description 1" 
       }, 
       { 
       "name": "name2", 
       "description": "description 2" 
       } 
      ], 
      offersWednesday: [ 
      { 
       "name": "name1", 
       "description" "description 1" 
       }, 
       { 
       "name": "name2", 
       "description": "description 2" 
       } 
      ] 
} 

私は各オブジェクトのインスタンスの下に説明を取得する必要があります。これを行う最善の方法は何ですか?

filter()機能を使用しますか?

ありがとうございました。

編集:私はそれらをすべて1つの変数に入れる必要があります。offersMonday[0].description + offersTuesday[0].descriptionのようなことは、これを処理するのには良いことではありません。

+0

あなたは、あなたがそれを引き出した後、データを見てみたいどうすればよいですか? –

+0

私は編集します、分、私に教えてください。 –

+0

この 'description'データを得ることはどういう意味ですか、どのような形式ですか?オブジェクト、または配列? –

答えて

0

あなたはこのような何かを試みることができる:

data.offersMonday[0].description 

は、具体的な説明を読むことを。またはすべての説明を取得するには、次のようなもの:メインのオブジェクトの上

var data = { 
 
     offersMonday: [ 
 
       { 
 
       "name": "name1", 
 
       "description": "description 1" 
 
       }, 
 
       { 
 
       "name": "name2", 
 
       "description": "description 2" 
 
       } 
 
      ], 
 
     offersTuesday: [ 
 
     { 
 
       "name": "name1", 
 
       "description" : "description 1" 
 
       }, 
 
       { 
 
       "name": "name2", 
 
       "description": "description 2" 
 
       } 
 
      ], 
 
      offersWednesday: [ 
 
      { 
 
       "name": "name1", 
 
       "description" : "description 1" 
 
       }, 
 
       { 
 
       "name": "name2", 
 
       "description": "description 2" 
 
       } 
 
      ] 
 
} 
 

 
var descriptions = []; 
 
for(var key in data){ 
 
    data[key].forEach(function(obj){ 
 
     descriptions.push(obj.description); 
 
    }); 
 
} 
 

 
console.log(descriptions);

+0

私は1つの変数でそれらをすべて取得する必要があります。 –

+0

@ eric.dummy追加したスニペットはどうですか? – Christos

+0

もう一度お願いします。 –

0
var descs=[]; 
for(key in data){ 
    descs=descs.concat(data[key].map(el=>el.description)); 
} 
console.log(descs);//array 
console.log(descs.join(","));//string 

ループ、およびすべてのアレイelems記述値を取得し、descs配列に要素を追加します。

+0

これは動作しません.. –

0

あなたはそのような何かを試みることができる:あなたはこれを適切にフォーマットするいくつかの:マークが欠けていたよう

var descriptions = []; 
for(prop in data){ 
    data[prop].forEach(function(offer){ 
     descriptions.push(offer.description); 
    } 
} 
+0

これは他の答えと同じで、明らかに重複しています... –

+0

まあ、私は同じ時間にそれを書いていて、私はそれを見ませんでした! –

0

が見えるが、私は下の入力データを再フォーマットしました:

以下
const input = { 
data: { 
    offersMonday: [{ 
     name: "name1", 
     description: "description 1" 
    }, { 
     name: "name2", 
     description: "description 2" 
    }], 
    offersTuesday: [{ 
     name: "name1", 
     description: "description 1" 
    }, { 
     name: "name2", 
     description: "description 2" 
    }], 
    offersWednesday: [{ 
     name: "name1", 
     description: "description 1" 
    }, { 
     name: "name2", 
     description: "description 2" 
    }] 
} 
} 

ですオブジェクトを移動して必要なものをつかむ機能。私は彼らが有効なJSではないのでマークを削除しました(私はあなたがJSONからこれを返すと仮定しています)。 JSONオブジェクトが入ってくると、あなたのために引用符が取り除かれます。

私のために働いた解決策は、フォーマットがあなたが探しているものでないかどうか教えてください。

function groupDescriptions(input) { 
    let aggregatedArray = []; 
    const data = input.data; 

    for (day in data) { 
     const innerArray = data[day]; 
     innerArray.forEach((item) => { 
      aggregatedArray.push(item.description); 
     }) 

    } 
    return aggregatedArray; 
    } 

aggregatedArray戻り、この:

[ 'description 1', 
'description 2', 
'description 1', 
'description 2', 
'description 1', 
'description 2' ] 
関連する問題