求和一个毫秒数组
Sum an array of milliseconds
我有一个毫秒数组,我想要它的总和。我已经尝试了 array.reduce 并使用了一个 for 循环,但是当我控制它或在网站上使用时,我得到的只是完全乱码。如果我得到毫秒的总和,我可以将它们转换为秒,如果需要,还可以转换为分钟。
代码:
window.timeArray = [2493, 2109, 4424, 1971, 3411, 1834, 2418]
let totalTimeSum = 0
for (let i = 0; i < window.timeArray.length; i++) {
totalTimeSum += parseInt(window.timeArray[i])
}
document.querySelector('#score').innerText += totalTimeSum
// 1866018660, should be 15249 - 15 sec 249 millisec
可选代码:
let totalTime = (sum, value) => sum + value
let totalTimeSum = window.timeArray.reduce(totalTime)
document.querySelector('#score').innerText += totalTimeSum
// 1866018660, should be 15249 - 15 sec 249 millisec
为了完成您的需要,您可以执行以下操作:
您可以使用Array.prototype.reduce
来计算数组元素的总和。
然后,要计算秒数,请将 sum
除以 1000
的商向下舍入。
余数就是剩余的毫秒数
片段:
var
/* Define the array. */
timeArray = [2493, 2109, 4424, 1971, 3411, 1834, 2418],
/* Calculate the sum. */
sum = timeArray.reduce((previous, current) => previous + current, 0),
/* Calculate the seconds. */
seconds = Math.floor(sum / 1000),
/* Calculate the milliseconds. */
milliseconds = sum % 1000;
/* Set the value as text to the score element. */
document.querySelector("#score").innerText = seconds + "s " + milliseconds + "ms";
<div id = "score"></div>
我有一个毫秒数组,我想要它的总和。我已经尝试了 array.reduce 并使用了一个 for 循环,但是当我控制它或在网站上使用时,我得到的只是完全乱码。如果我得到毫秒的总和,我可以将它们转换为秒,如果需要,还可以转换为分钟。
代码:
window.timeArray = [2493, 2109, 4424, 1971, 3411, 1834, 2418]
let totalTimeSum = 0
for (let i = 0; i < window.timeArray.length; i++) {
totalTimeSum += parseInt(window.timeArray[i])
}
document.querySelector('#score').innerText += totalTimeSum
// 1866018660, should be 15249 - 15 sec 249 millisec
可选代码:
let totalTime = (sum, value) => sum + value
let totalTimeSum = window.timeArray.reduce(totalTime)
document.querySelector('#score').innerText += totalTimeSum
// 1866018660, should be 15249 - 15 sec 249 millisec
为了完成您的需要,您可以执行以下操作:
您可以使用
Array.prototype.reduce
来计算数组元素的总和。然后,要计算秒数,请将
sum
除以1000
的商向下舍入。余数就是剩余的毫秒数
片段:
var
/* Define the array. */
timeArray = [2493, 2109, 4424, 1971, 3411, 1834, 2418],
/* Calculate the sum. */
sum = timeArray.reduce((previous, current) => previous + current, 0),
/* Calculate the seconds. */
seconds = Math.floor(sum / 1000),
/* Calculate the milliseconds. */
milliseconds = sum % 1000;
/* Set the value as text to the score element. */
document.querySelector("#score").innerText = seconds + "s " + milliseconds + "ms";
<div id = "score"></div>