2017-10-10 154 views
-3

創建新的對象我有一個像下面獲取最小和最大的日期,並在Javascript

SpecialObj= 
{ 
    "dataarray-345": 
    [ 
     {lqd: 1000, date: "2017-08-18 09:30:00"}, 
     {lqd: 5000, date: "2017-08-18 10:00:00"}, 
     {lqd: 5500, date: "2017-08-18 10:30:00"}, 
     {lqd: 4500, date: "2017-08-18 11:00:00"}, 
     {lqd: 1500, date: "2017-08-18 11:30:00"} 
    ], 
    "dataarray-123": 
    [ 
     {lqd: 1000, date: "2017-08-18 09:30:00"}, 
     {lqd: 5000, date: "2017-08-18 10:00:00"}, 
     {lqd: 5500, date: "2017-08-18 10:30:00"}, 
     {lqd: 4500, date: "2017-08-18 11:00:00"} 
    ], 
    "dataarray-127": 
    [ 
     {lqd: 5000, date: "2017-08-18 10:00:00"}, 
     {lqd: 5500, date: "2017-08-18 10:30:00"}, 
     {lqd: 4500, date: "2017-08-18 11:00:00"}, 
     {lqd: 1500, date: "2017-08-18 11:30:00"}, 
     {lqd: 2500, date: "2017-08-18 12:00:00"}, 
     {lqd: 3500, date: "2017-08-18 12:30:00"}, 
     {lqd: 8500, date: "2017-08-18 13:00:00"}, 
     {lqd: 9500, date: "2017-08-18 13:30:00"}, 
     {lqd: 6500, date: "2017-08-18 14:00:00"} 
    ] 
} 

每個DataArray中-345,於DataArray-123,經過比對DataArray中-127需要惡魔的一個對象最小和最大的日期和創建像下面的一個新的對象......

SpecialObj: 
{ 
    dataarray-345: 
    [ 
     {lqd: 1000, date: "2017-08-18 09:30:00"}, 
     {lqd: 6500, date: "2017-08-18 14:00:00"} 
    ], 
    dataarray-123: 
    [ 
     {lqd: 1000, date: "2017-08-18 09:30:00"}, 
     {lqd: 6500, date: "2017-08-18 14:00:00"} 
    ], 
    dataarray-127: 
    [ 
     {lqd: 1000, date: "2017-08-18 09:30:00"}, 
     {lqd: 6500, date: "2017-08-18 14:00:00"} 
    ] 
} 

這意味着所有的對象應該具有的最小和最大的數據集進行更新。

你能幫我創建這個對象用簡單的JavaScript。

在此先感謝...

+0

爲什麼你會希望所有對象具有相同的數據 – juvian

+1

這不是有效的JSON語法。那些實際上是對象的數組嗎? – Bergi

+1

是的,我們可以幫助您解決您的代碼問題。但是,您需要爲此發佈它。你甚至試圖自己解決這個問題嗎? – Bergi

回答

1

那麼你可以做這樣的事情:遍歷所有的對象屬性,重申他們的陣列和永遠保持目前的最小值和最大值發現。然後用新格式創建另一個對象。

請注意,在此解決方案中,我使用相同的最小和最大對象來填充新的對象數組,因此如果您打算更改其中一個對象的值,則更改將反映其他對象以及它們相同參考。

var SpecialObj = 
 
{ 
 
    "obj-1": [ 
 
     {lqd: 1000, date: "2017-08-18 09:30:00"}, 
 
     {lqd: 5000, date: "2017-08-18 10:00:00"}, 
 
     {lqd: 5500, date: "2017-08-18 10:30:00"}, 
 
     {lqd: 4500, date: "2017-08-18 11:00:00"}, 
 
     {lqd: 1500, date: "2017-08-18 11:30:00"} 
 
    ], 
 
    "obj-2": 
 
    [ 
 
     {lqd: 1000, date: "2017-08-18 09:30:00"}, 
 
     {lqd: 5000, date: "2017-08-18 10:00:00"}, 
 
     {lqd: 5500, date: "2017-08-18 10:30:00"}, 
 
    ], 
 
    "obj-3": 
 
    [ 
 
     {lqd: 5000, date: "2017-08-18 10:00:00"}, 
 
     {lqd: 5500, date: "2017-08-18 10:30:00"}, 
 
     {lqd: 4500, date: "2017-08-18 11:00:00"}, 
 
     {lqd: 1500, date: "2017-08-18 11:30:00"}, 
 
     {lqd: 2500, date: "2017-08-18 12:00:00"}, 
 
     {lqd: 3500, date: "2017-08-18 12:30:00"}, 
 
     {lqd: 8500, date: "2017-08-18 13:00:00"}, 
 
     {lqd: 9500, date: "2017-08-18 13:30:00"}, 
 
     {lqd: 6500, date: "2017-08-18 14:00:00"} 
 
    ] 
 
} 
 

 
var min = null, max = null; 
 

 
for (var key in SpecialObj) { 
 
    var arr = SpecialObj[key]; 
 
    arr.forEach(function(obj){ 
 
     if (min == null || new Date(obj.date) < new Date(min.date)) min = obj; 
 
     if (max == null || new Date(obj.date) > new Date(max.date)) max = obj; 
 
    }) 
 
} 
 

 
var newObj = {} 
 

 
for (var key in SpecialObj) { 
 
    newObj[key] = [min, max]; 
 
} 
 

 
console.log(newObj)