减去散列数组中的值-Javascript



我想减去哈希数组中的两个值,以了解Discard Value的增长情况。

我的阵列是这样的:

array = 
{"SiteA": [
{device:"SiteA", discardmax:16617331511, timeCapturedmax:"February 18, 2018 at 09:27 AM"}, 
{device:"SiteA", discardmax:16617216094, timeCapturedmax:"February 18, 2018 at 09:22 AM"}, 
{device:"SiteA", discardmax:16617202279, timeCapturedmax:"February 18, 2018 at 09:18 AM"},
{device:"SiteA", discardmax:16616985649, timeCapturedmax:"February 18, 2018 at 09:12 AM"}, 
{device:"SiteA", discardmax:16616404836, timeCapturedmax:"February 18, 2018 at 09:07 AM"},  
{device:"SiteA", discardmax:16616368250, timeCapturedmax:"February 18, 2018 at 09:03 AM"}
], 
"SiteB": [
{device:"SiteB", discardmax:16617331511, timeCapturedmax:"February 18, 2018 at 09:27 AM"}, 
{device:"SiteB", discardmax:16617216094, timeCapturedmax:"February 18, 2018 at 09:22 AM"}, 
{device:"SiteB", discardmax:16617202279, timeCapturedmax:"February 18, 2018 at 09:18 AM"},
{device:"SiteB", discardmax:16616985649, timeCapturedmax:"February 18, 2018 at 09:12 AM"}, 
{device:"SiteB", discardmax:16616404836, timeCapturedmax:"February 18, 2018 at 09:07 AM"},  
{device:"SiteB", discardmax:16616368250, timeCapturedmax:"February 18, 2018 at 09:03 AM"}
]}

我想从"discardmax"中减去值,得到下面的数组。

[
{device:"SiteA", discardmax:115417, timeCapturedmax:"February 18, 2018 at 09:27 AM"}, 
{device:"SiteA", discardmax:13815, timeCapturedmax:"February 18, 2018 at 09:22 AM"}, 
{device:"SiteA", discardmax:216630, timeCapturedmax:"February 18, 2018 at 09:18 AM"},
{device:"SiteA", discardmax:580813, timeCapturedmax:"February 18, 2018 at 09:12 AM"}, 
{device:"SiteA", discardmax:36586, timeCapturedmax:"February 18, 2018 at 09:07 AM"},
{device:"SiteB", discardmax:115417, timeCapturedmax:"February 18, 2018 at 09:27 AM"}, 
{device:"SiteB", discardmax:13815, timeCapturedmax:"February 18, 2018 at 09:22 AM"}, 
{device:"SiteB", discardmax:216630, timeCapturedmax:"February 18, 2018 at 09:18 AM"},
{device:"SiteB", discardmax:580813, timeCapturedmax:"February 18, 2018 at 09:12 AM"}, 
{device:"SiteB", discardmax:36586, timeCapturedmax:"February 18, 2018 at 09:07 AM"}
]

在ruby中,我使用了这段代码,但现在我想使用javascript:

keystotal = arrya.keys
arr_sub = keystotal.map { |k|
[k, groupedtotal[k].each_cons(2).map do |g,h|
{ devicetotal: g[:devicetotal], porttotal: g[:porttotal], device_int_stats_total: g[:device_int_stats_total], octetsrxsub: g[:octetsrxtotal]-h[:octetsrxtotal], octetstxsub: g[:octetstxtotal]-h[:octetstxtotal], time_unixsub: g[:time_unixtotal]-h[:time_unixtotal], time_unixtotal: g[:time_unixtotal], timeCapturedtotal: g[:timeCapturedtotal]}
end
]
}
table_sub = arr_sub.map { |ts| ts[1] }

循环遍历数组,从array[i].discardmax中减去array[i+1].discardmax。创建一个新对象,将其合并到array[i]的副本中。

var array = 
{"SiteA": [
{device:"SiteA", discardmax:16617331511, timeCapturedmax:"February 18, 2018 at 09:27 AM"}, 
{device:"SiteA", discardmax:16617216094, timeCapturedmax:"February 18, 2018 at 09:22 AM"}, 
{device:"SiteA", discardmax:16617202279, timeCapturedmax:"February 18, 2018 at 09:18 AM"},
{device:"SiteA", discardmax:16616985649, timeCapturedmax:"February 18, 2018 at 09:12 AM"}, 
{device:"SiteA", discardmax:16616404836, timeCapturedmax:"February 18, 2018 at 09:07 AM"},  
{device:"SiteA", discardmax:16616368250, timeCapturedmax:"February 18, 2018 at 09:03 AM"}
], 
"SiteB": [
{device:"SiteB", discardmax:16617331511, timeCapturedmax:"February 18, 2018 at 09:27 AM"}, 
{device:"SiteB", discardmax:16617216094, timeCapturedmax:"February 18, 2018 at 09:22 AM"}, 
{device:"SiteB", discardmax:16617202279, timeCapturedmax:"February 18, 2018 at 09:18 AM"},
{device:"SiteB", discardmax:16616985649, timeCapturedmax:"February 18, 2018 at 09:12 AM"}, 
{device:"SiteB", discardmax:16616404836, timeCapturedmax:"February 18, 2018 at 09:07 AM"},  
{device:"SiteB", discardmax:16616368250, timeCapturedmax:"February 18, 2018 at 09:03 AM"}
]};
var result = [];
for (var k in array) {
var arr2 = array[k];
for (var i = 0; i < arr2.length - 1; i++) {
result.push({ ...arr2[i],
discardmax: arr2[i].discardmax - arr2[i + 1].discardmax
});
}
}
console.log(result);

最新更新