teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/09/06 05:41

投稿

yambejp
yambejp

スコア117967

answer CHANGED
@@ -1,3 +1,28 @@
1
1
  結果としてどういった最終形を得たいのでしょうか?
2
2
  たとえばdata1とdata2を集約するとして、data1にdata2のhoursを加算して
3
- data2を削除する?(表示しない)?
3
+ data2を削除する?(表示しない)?
4
+
5
+ #追記
6
+ ベタな処理ですが各データのdateもidも文字列なので連結してキーにしてしまえばよいかも
7
+ ```javascript
8
+ var data ={
9
+ "data1":{"date":"2016-09-01","id": "ID1","hours":"1"},
10
+ "data2":{"date":"2016-09-01","id": "ID1","hours":"2"},
11
+ "data3":{"date":"2016-09-01","id": "ID2","hours":"3"},
12
+ "data4":{"date":"2016-09-01","id": "ID2","hours":"4"},
13
+ "data5":{"date":"2016-09-02","id": "ID1","hours":"5"},
14
+ "data6":{"date":"2016-09-02","id": "ID2","hours":"6"},
15
+ };
16
+ var tmp={};
17
+ for(key in data){
18
+ var n=data[key]["date"]+":"+data[key]["id"];
19
+ if(typeof tmp[n]=="undefined"){
20
+ tmp[n]=parseInt(data[key]["hours"]);
21
+ }else{
22
+ tmp[n]+=parseInt(data[key]["hours"]);
23
+ }
24
+ }
25
+ for(key in tmp){
26
+ console.log(key+"="+tmp[key]);
27
+ }
28
+ ```