2016-05-31 1 views
1

ここに私が作った機能があります。私は配列内のnamesとそれぞれのチームのrunsを抽出したいので、それらをグラフとして表示するための応答として使用することができます。このオブジェクトのリストから "name"と "runs"を抽出する方法

function unpack(obj, key) { 
    Object.keys(obj).forEach(function(key) { 
     var collection = []; 
     var collections = []; 
     for (var k in obj) { 
      collection.push(obj[k]); 
     } 
     console.log(collection); 
     return collection; 
    }); 
} 

これは、オブジェクト

のリスト
[ 
{ 
name: "Scotland", 
stats: { 
runs: 16135, 
wickets_taken: 1, 
matches_played: 354 
} 
}, 
{ 
name: "Pakistan", 
stats: { 
runs: 70900, 
wickets_taken: 43, 
matches_played: 1066 
} 
}, 
{ 
name: "West Indies", 
stats: { 
    runs: 61300, 
    wickets_taken: 280, 
    matches_played: 739 
    } 
}, 
{ 
    name: "Sri Lanka", 
    stats: { 
    runs: 108242, 
    wickets_taken: 741, 
    matches_played: 1049 
    } 
    }] 
+0

2つの異なる配列が必要ですか?または単一の配列? –

+0

2つの異なる配列が必要なので、別々の方法で使用できます –

答えて

0

があなたのオブジェクトが格納されている変数は

function getData() { 
     var names = []; 
     var runs = []; 
     obj.forEach(function(item) { 
      names.push(item.name); 
      runs.push(item.stats.runs); 
     }); 
     return { 
      runs: runs, 
      names: names, 
     } 
    } 
    //access them outside as: 
var data = getData(); 
var names = data.names; //accessing name and run array returned from fxn 
var runs = data.runs; 
+0

コンソールにobjが定義されていないと表示されます。私のオブジェクトはapiエンドポイントです。だから何をすべきか? –

+0

オブジェクトがAPIのエンドポイントからの応答であることを意味していますか? –

+0

はい私は同じことを意味する..しかし、私は今それを考え出した –

0

objをあなたは単にforループ

でこれを行うことができますさせています

var dataObj = [ 
 
\t \t \t \t { 
 
\t \t \t \t name: "Scotland", 
 
\t \t \t \t stats: { 
 
\t \t \t \t runs: 16135, 
 
\t \t \t \t wickets_taken: 1, 
 
\t \t \t \t matches_played: 354 
 
\t \t \t \t } 
 
\t \t \t \t }, 
 
\t \t \t \t { 
 
\t \t \t \t name: "Pakistan", 
 
\t \t \t \t stats: { 
 
\t \t \t \t runs: 70900, 
 
\t \t \t \t wickets_taken: 43, 
 
\t \t \t \t matches_played: 1066 
 
\t \t \t \t } 
 
\t \t \t \t }, 
 
\t \t \t \t { 
 
\t \t \t \t name: "West Indies", 
 
\t \t \t \t stats: { 
 
\t \t \t \t runs: 61300, 
 
\t \t \t \t wickets_taken: 280, 
 
\t \t \t \t matches_played: 739 
 
\t \t \t \t } 
 
\t \t \t \t }, 
 
\t \t \t \t { 
 
\t \t \t \t name: "Sri Lanka", 
 
\t \t \t \t stats: { 
 
\t \t \t \t runs: 108242, 
 
\t \t \t \t wickets_taken: 741, 
 
\t \t \t \t matches_played: 1049 
 
\t \t \t \t \t } 
 
\t \t \t \t } 
 
\t \t \t \t ]; 
 

 
var names = []; 
 
var runs = []; 
 

 
for(var i= 0; i< dataObj.length; i++) 
 
{ 
 
\t names.push(dataObj[i].name); 
 
\t runs.push(dataObj[i].stats.runs); 
 
} 
 
\t 
 
console.log('NAMES', names); 
 
console.log('RUNS',runs);

関連する問題