2017-03-27 5 views
-2

私は配列の配列を持っていて、各配列に日付とランダムな値があります。フィルタリング配列(javascript)

私は日付ピッカーを持っており、一度日付をクリックすると、その日付の値を保持しています。

ですから、例えば

var array = [ ["02-01-2017 09:20:21", 116], 
    ["02-13-2017 19:07:57", 133], 
    ["01-28-2017 10:27:15", 29], 
    ["02-14-2017 06:56:22", 137], 
    ["02-22-2017 09:23:43", 208], 
    ["01-15-2017 23:33:40", 120], 
    ["01-16-2017 05:21:05", 146], 
    ["01-02-2017 01:49:32", 209], 
    ["02-14-2017 06:19:54", 172], 
    ["01-02-2017 02:12:16", 13], 
    ["02-25-2017 11:39:00", 213], 
    ["01-01-2017 15:27:43", 39], 
    ["01-10-2017 17:58:27", 96], 
    ["02-10-2017 18:17:42", 99], 
    ["01-04-2017 21:28:33", 40], 
    ["02-08-2017 18:09:55", 92], 
    ["02-08-2017 10:24:47", 12], 
    ["02-03-2017 19:49:59", 15], 
    ["01-07-2017 16:52:17", 196] 
] 

ので、私は2017年2月8日のように私の日付ピッカーから日付をクリックすると、私は私の配列のみ選択が含まれる配列を持って最後になるよう私の大きな配列をフィルタリングしたいです日付。

var newArray = [ 
     ["02-08-2017 18:09:55", 92], 
     ["02-08-2017 10:24:47", 12] 
] 

どうすればよいですか?任意のjqueryを使用しない

+3

これまでに何を試みましたか?配列のフィルタリングは、JavaScriptの(やや基本的な)(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)タスクです。 – Timo

+1

"には" In what?何か忘れましたか? – dimlucas

答えて

0

Array.prototype.filterは、関数を受け取り、配列の各要素に適用する必要があります。関数がtrueを返すと、渡された要素が結果として返されます。例えば

あなたはフィルタを使用して)(日付内のオブジェクトを文字列に変換し、それらを時間を無視して日付のみを考慮し比較することtoDateString()を使用することができます
let result = sourceArray.filter((elt) => elt[0].match(/^02-08-2017$/)) 
+0

それは完璧に働いた、悲しいことに、私のミスは愚かでした、私は何だった allDays = array.filter(picked => picked.match(day))を聞かせて 括弧とインデックスを対象としていないので、 –

0

var array = [ ["02-01-2017 09:20:21", 116], ["02-13-2017 19:07:57", 133], ["01-28-2017 10:27:15", 29], ["02-14-2017 06:56:22", 137], ["02-22-2017 09:23:43", 208], ["01-15-2017 23:33:40", 120], ["01-16-2017 05:21:05", 146], ["01-02-2017 01:49:32", 209], ["02-14-2017 06:19:54", 172], ["01-02-2017 02:12:16", 13], ["02-25-2017 11:39:00", 213], ["01-01-2017 15:27:43", 39], ["01-10-2017 17:58:27", 96], ["02-10-2017 18:17:42", 99], ["01-04-2017 21:28:33", 40], ["02-08-2017 18:09:55", 92], ["02-08-2017 10:24:47", 12], ["02-03-2017 19:49:59", 15], ["01-07-2017 16:52:17", 196] ] 
 

 
const selectedDate = "02-08-2017"; 
 
const transformedDate = new Date(selectedDate).toDateString() 
 

 
const result = array.filter(el => new Date(el[0]).toDateString() === transformedDate) 
 

 
console.log(result)

関連する問題