2016-10-11 13 views
0

D3からJSONオブジェクトをロードして、配列からいくつかの列を除外します。私の唯一の問題は、次のようなことです。Jsonの配列からのフィルタ値(JavaScript)

Object.attribute; 

私は欲しいものを返しません。私のJSONオブジェクトの構造は次のとおりです。これは1000個のオブジェクトを保持し、各配列は内部に属性を保持します。私はhttps://data.raleighnc.gov/resource/xce4-kemu.jsonから私のデータを参照しています。

私は

Object[0].attribute; 

をすればそれはとても "12" のように、オブジェクトの実際の値を返します。どこでそのキーが存在するすべての値を返すのか

URLにはJSONの例があります。私は、たとえば、発行された日付、statelicnum、およびconstcompletedofficial属性のみが存在するJSONを返したいと思います。私が試したものの

アンスニペットは、次のとおりです。

var raleigh_data = "https://data.raleighnc.gov/resource/xce4-kemu.json"; 
d3.json(raleigh_data, function(error, data) { 
var filtered_data = data.filter(function(d,i,e) { 
return d.issueddate_mth; 
}); 

}

+0

1000個の配列ではなく1000個のオブジェクトの配列 –

+1

そのデータから何をフィルタリングしたいですか? – Sajeetharan

+1

は、配列をフィルタリングするために 'var filteredArray = xxx.filter(callbackFunction)'のようなものを使用します(この場合、配列はxxx ...と呼ばれるvarで、あなたは 'Object'というvarを使用しません)。 .. callbackFunctionは、3つの引数、項目、インデックス、配列全体を受け入れる関数です。あなたのロジックを実行し、trueまたはfalseを返して、新しい配列に項目を含める/除外します。 –

答えて

3
var data = [your array of 1000 objects] 
var filteredData = []; 
data.forEach(function(item) { 
    if (item.issueddate_mth && item.statelicnum && item.constcompletedofficial) { 
     filteredData.push(item); 
    } 
}); 

これはあなたにだけ、指定されたプロパティを使用して元の配列からアイテムを含む配列を取得します。

また、これらの3つの正当性だけが必要な場合は100%確信していません。もしそうなら、あなたはitemの代わりに{ issueddate_mth: item.issueddate_mth, statelicnum: item.statelicnum, constcompletedofficial: item.constcompletedofficial }forEachコールバックに入れて

+0

逆を行う方法はありますか?私がJSONオブジェクトで望ましくないプロパティを取り除くという意味ですか? – Kalimantan

+0

私は指定したように2番目の部分を試してみましたが、それは魅力のように機能しました。ありがとうございました!! – Kalimantan

関連する問題