51 lines
1.2 KiB
JavaScript
Executable File
51 lines
1.2 KiB
JavaScript
Executable File
// Converts seconds to human-readable time
|
|
String.prototype.toHHMMSS = function () {
|
|
let sec_num = parseInt(this, 10); // don't forget the second param
|
|
let hours = Math.floor(sec_num / 3600);
|
|
let minutes = Math.floor((sec_num - hours * 3600) / 60);
|
|
let seconds = sec_num - hours * 3600 - minutes * 60;
|
|
|
|
if (hours < 10) {
|
|
hours = "0" + hours;
|
|
}
|
|
if (minutes < 10) {
|
|
minutes = "0" + minutes;
|
|
}
|
|
if (seconds < 10) {
|
|
seconds = "0" + seconds;
|
|
}
|
|
return hours + ":" + minutes + ":" + seconds;
|
|
};
|
|
|
|
async function asyncForEach(array, callback) {
|
|
for (let index = 0; index < array.length; index++) {
|
|
await callback(array[index], index, array);
|
|
}
|
|
}
|
|
|
|
function randElement(arr) {
|
|
return arr[Math.floor(Math.random() * arr.length)];
|
|
}
|
|
|
|
function randSort() {
|
|
return 0.5 - Math.random();
|
|
}
|
|
|
|
function chunkSubstr(str, size) {
|
|
const numChunks = Math.ceil(str.length / size);
|
|
const chunks = new Array(numChunks);
|
|
|
|
for (let i = 0, o = 0; i < numChunks; ++i, o += size) {
|
|
chunks[i] = str.substr(o, size);
|
|
}
|
|
|
|
return chunks;
|
|
}
|
|
|
|
module.exports = {
|
|
asyncForEach,
|
|
randElement,
|
|
randSort,
|
|
chunkSubstr
|
|
};
|