2017-05-25 14 views
1

私は日付のオブジェクトの配列を持っています。私がしたいのは、同じ日付の値を持つすべてのオブジェクトを選択し、それらを新しい配列にプッシュすることです。
ここに私のコードです。配列をソートし、複製を新しい配列にプッシュ

var posts = [ 
    { 
    "userid": 1, 
    "rating": 4, 
    "mood": "happy", 
    "date": "2017-05-24T04:00:00.000Z" 
    }, 
    { 
    "userid": 1, 
    "rating": 3, 
    "mood": "happy", 
    "date": "2017-05-24T04:00:00.000Z" 
    }, 
    { 
    "userid": 1, 
    "rating": 3, 
    "mood": "angry", 
    "date": "2017-05-25T04:00:00.000Z" 
    }, 
    { 
    "userid": 1, 
    "rating": 5, 
    "mood": "hungry", 
    "date": "2017-05-25T04:00:00.000Z" 
    }] 
var may25=[]; 

for(i=0;i < posts.length;i++){ 
if(posts[i].date === posts[i].date){ 
may25.push(posts[i].date) 
} 
} 
+1

だから何があなたのアプローチでの作業ではないです。 [ask]を見てから、**明確な問題文**を提供してください。 –

+3

'if(posts [i] .date === posts [i] .date)'はそうではありませんか? – Barmar

+0

最終的な値をどのように表示するかを指定する必要があります。 –

答えて

0

文字列から日付をスライスして、日付で項目をグループ化するためのキーとして使用できます。結果はすべてのグループ化されたオブジェクトを持つオブジェクトです。

var posts = [{ userid: 1, rating: 4, mood: "happy", date: "2017-05-24T04:00:00.000Z" }, { userid: 1, rating: 3, mood: "happy", date: "2017-05-24T04:00:00.000Z" }, { userid: 1, rating: 3, mood: "angry", date: "2017-05-25T04:00:00.000Z" }, { userid: 1, rating: 5, mood: "hungry", date: "2017-05-25T04:00:00.000Z" }], 
 
    groups = Object.create(null); 
 
    
 
posts.forEach(function (o) { 
 
    var date = o.date.slice(0, 10); 
 
    groups[date] = groups[date] || []; 
 
    groups[date].push(o) 
 
}); 
 

 
console.log(groups);
.as-console-wrapper { max-height: 100% !important; top: 0; }

0

(あなたの質問が示すように)あなただけの5月25日の日付を探している場合:

var may25=[]; 

for (i=0;i < posts.length;i++) { 
    if (posts[i].date === "2017-05-25T04:00:00.000Z") { 
     may25.push(posts[i].date) 
    } 
} 
0

あなたは日付=>イベント配列を含むオブジェクトを作成することもできます。

var result=posts.reduce((obj,event)=>((obj[event.date]=obj[event.date] || []).push(event),obj),{}); 

は今、あなたは行うことができます。

result["2017-05-25T04:00:00.000Z"].forEach(console.log); 

仕様:

posts.reduce((obj,event)=>...,{}) //iterate over the posts and pass each as event to the function and also pass an object to be filled 

(obj[event.date]=obj[event.date] || [])//return the date array, or create a new one if it doesnt exist 

.push(event)//append our event to it 
関連する問題