我有一組時間值數組。在node.js中添加HH:MM:SS值的數組
var time = [
"03:05:11",
"00:00:12",
"03:03:14"
]
如何添加所有的數組值,這樣我得到的輸出爲"06:08:37"
(的"03:05:11" + "00:00:12" + "03:03:14"
總和)。
如果有N
沒有數組值,我們如何在沒有循環node.js的情況下做到這一點?
我有一組時間值數組。在node.js中添加HH:MM:SS值的數組
var time = [
"03:05:11",
"00:00:12",
"03:03:14"
]
如何添加所有的數組值,這樣我得到的輸出爲"06:08:37"
(的"03:05:11" + "00:00:12" + "03:03:14"
總和)。
如果有N
沒有數組值,我們如何在沒有循環node.js的情況下做到這一點?
聽起來像是moment.js(http://momentjs.com/)
首先我們需要分析的時間跨度爲可用於計算的東西用moment.duration構造函數,然後我們使用數組減少總結這些值的工作:
var moment = require('moment');
var sum = [
"03:05:11",
"00:00:12",
"03:03:14"
].map(t => moment.duration(t))
.reduce((sum, current) => sum.add(current), moment.duration());
用於格式化總和爲 「HH:MM:SS」 格式化時刻持續時間格式插件可以使用(https://github.com/jsmreese/moment-duration-format):
console.log(sum.format("hh:mm:ss"));
由於數據存儲在一個數組中,因此所有答案都需要循環。
手babelified ES5版
var sum = [
"03:05:11",
"00:00:12",
"03:03:14"
].map(function(t) { return moment.duration(t); })
.reduce(function(sum, current) { return sum.add(current); }, moment.duration());
/test.js:6 ] .MAP(T => moment.duration(t))的 ^^ 語法錯誤:意外標記=> 在exports.runInThisContext(vm.js:73:16) 在模塊。 _ Module(module.js:443:25) at Module.load(module.js:355:32) at Object.Module._extensions..js(module.js:478:10) at Function.Module._load (module.js:310:12) at function.Module.runMain(module.js:501:10) at startup(node.js:129:16) at node.js:814:3我得到這個錯誤,當我try.thank你 – sandy
我在這裏使用es6語法所以需要節點4.x或更高來運行代碼。 – saintedlama
我正在使用節點0.12.2 version.please建議我支持我的版本的方法 – sandy
你的意思是「沒有循環的NodeJS」什麼,你有一個數組,並要提取的總和。如果沒有循環,該怎麼辦? –
如果我的array.length = 1000,它重複1000次,所以我正在尋找更有效的方法 – sandy
你不能重複少於N次。很明顯,如果你需要計算總和,你需要通過整個數組。你會發現任何解決方案都不會少於N次。 –