2016-09-15 3 views
-1

jQueryのセレクタや要素の変更を除いて、私はjavascriptであまりにも優れていません。私が抱えている問題については、日付でJavaScriptオブジェクトをフィルタリングする必要があります。私が経験してる問題"2016-08-21T00:00:00.000Z"間と"2010-08-21T00:00:00.000Z"released_on:フィールドが文字列でない日付であるということですので、2つの日付間でオブジェクトの配列をフィルタリングするにはどうすればよいですか?

Object { version: "3.1.1", released_on: "2016-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 } 

は、私が10年からすべてのオブジェクトを見つけたい:私はこのようになります構造を有しています。 new Date()オブジェクトを作成して文字列に変換し、.filterを使用するか、逆の処理を行い、文字列を日付に変換してからフィルタリングする必要がありますか。誰もこれの前に何かを試したことがありますか?

+1

'新しいDate()。getTime()'あなた 'はconsole.log(新しい日付(「2016ブラウザのコンソールでこれを入れ –

+0

で動作するように容易になります番号を与えます-08-21T00:00:00.000Z "))'は、日付文字列が完全に有効であることを確認します。日付オブジェクトに対して直接比較演算子を使用することもできます – charlietfl

答えて

1

次のようにします。

var data = [{ version: "3.1.1", released_on: "2016-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 }, 
 
      { version: "3.1.1", released_on: "2011-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 }, 
 
      { version: "3.1.1", released_on: "2009-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 }, 
 
      { version: "3.1.1", released_on: "2006-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 }, 
 
      { version: "3.1.1", released_on: "2013-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 }, 
 
      { version: "3.1.1", released_on: "2017-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 }, 
 
      { version: "3.1.1", released_on: "2015-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 }, 
 
      ], 
 
     ed = new Date("2016-08-21T00:00:00.000Z").getTime(), 
 
     sd = new Date("2010-08-21T00:00:00.000Z").getTime(), 
 
    result = data.filter(d => {var time = new Date(d.released_on).getTime(); 
 
          return (sd < time && time < ed); 
 
          }); 
 
console.log(result);

関連する問題